@webex/plugin-meetings 3.8.0-next.6 → 3.8.0-next.60
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/common/errors/webex-errors.js +12 -2
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/constants.js +16 -121
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +2 -0
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/types.js.map +1 -1
- package/dist/controls-options-manager/util.js +52 -0
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.js +28 -10
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +20 -1
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/selfUtils.js +405 -418
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +8 -16
- package/dist/media/index.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +13 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +548 -288
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +0 -17
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.js +0 -2
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +30 -0
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +13 -2
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +359 -60
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meetings/index.js +91 -1
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/util.js +14 -0
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +10 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +3 -0
- package/dist/member/util.js.map +1 -1
- package/dist/members/index.js +23 -0
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +21 -0
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +15 -0
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +9 -0
- package/dist/metrics/constants.js.map +1 -1
- package/dist/reachability/clusterReachability.js +63 -27
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/index.js +112 -47
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/reachability.types.js +14 -0
- package/dist/reachability/reachability.types.js.map +1 -1
- package/dist/reachability/request.js +19 -3
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +2 -2
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/util.js +5 -5
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/turnDiscovery.js +45 -27
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/roap/types.js +17 -0
- package/dist/roap/types.js.map +1 -0
- package/dist/types/common/errors/webex-errors.d.ts +7 -1
- package/dist/types/config.d.ts +1 -0
- package/dist/types/constants.d.ts +11 -85
- package/dist/types/controls-options-manager/enums.d.ts +3 -1
- package/dist/types/controls-options-manager/types.d.ts +7 -1
- package/dist/types/locus-info/index.d.ts +1 -0
- package/dist/types/locus-info/selfUtils.d.ts +247 -1
- package/dist/types/meeting/in-meeting-actions.d.ts +12 -0
- package/dist/types/meeting/index.d.ts +54 -1
- package/dist/types/meeting/muteState.d.ts +0 -1
- package/dist/types/meeting/request.d.ts +12 -1
- package/dist/types/meeting/request.type.d.ts +6 -0
- package/dist/types/meeting/util.d.ts +3 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +80 -0
- package/dist/types/meetings/index.d.ts +38 -0
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/members/index.d.ts +8 -0
- package/dist/types/members/request.d.ts +19 -0
- package/dist/types/members/util.d.ts +13 -0
- package/dist/types/metrics/constants.d.ts +9 -0
- package/dist/types/reachability/clusterReachability.d.ts +15 -7
- package/dist/types/reachability/index.d.ts +10 -1
- package/dist/types/reachability/reachability.types.d.ts +5 -0
- package/dist/types/roap/index.d.ts +3 -2
- package/dist/types/roap/turnDiscovery.d.ts +5 -17
- package/dist/types/roap/types.d.ts +16 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +23 -23
- package/src/common/errors/webex-errors.ts +8 -1
- package/src/config.ts +1 -0
- package/src/constants.ts +18 -90
- package/src/controls-options-manager/enums.ts +2 -0
- package/src/controls-options-manager/types.ts +11 -1
- package/src/controls-options-manager/util.ts +62 -0
- package/src/locus-info/controlsUtils.ts +44 -14
- package/src/locus-info/index.ts +23 -1
- package/src/locus-info/selfUtils.ts +451 -447
- package/src/media/index.ts +11 -21
- package/src/meeting/in-meeting-actions.ts +24 -0
- package/src/meeting/index.ts +364 -92
- package/src/meeting/locusMediaRequest.ts +0 -18
- package/src/meeting/muteState.ts +0 -2
- package/src/meeting/request.ts +36 -1
- package/src/meeting/request.type.ts +7 -0
- package/src/meeting/util.ts +11 -2
- package/src/meeting-info/meeting-info-v2.ts +247 -6
- package/src/meetings/index.ts +107 -1
- package/src/meetings/util.ts +18 -0
- package/src/member/index.ts +11 -0
- package/src/member/util.ts +3 -0
- package/src/members/index.ts +25 -0
- package/src/members/request.ts +26 -0
- package/src/members/util.ts +16 -0
- package/src/metrics/constants.ts +9 -0
- package/src/reachability/clusterReachability.ts +73 -26
- package/src/reachability/index.ts +70 -1
- package/src/reachability/reachability.types.ts +6 -0
- package/src/reachability/request.ts +7 -0
- package/src/reconnection-manager/index.ts +2 -2
- package/src/recording-controller/util.ts +17 -13
- package/src/roap/index.ts +3 -7
- package/src/roap/turnDiscovery.ts +34 -39
- package/src/roap/types.ts +23 -0
- package/test/unit/spec/controls-options-manager/util.js +120 -0
- package/test/unit/spec/locus-info/controlsUtils.js +103 -9
- package/test/unit/spec/locus-info/index.js +28 -0
- package/test/unit/spec/media/index.ts +36 -16
- package/test/unit/spec/meeting/in-meeting-actions.ts +15 -4
- package/test/unit/spec/meeting/index.js +518 -34
- package/test/unit/spec/meeting/locusMediaRequest.ts +0 -30
- package/test/unit/spec/meeting/muteState.js +0 -2
- package/test/unit/spec/meeting/request.js +32 -1
- package/test/unit/spec/meeting/utils.js +119 -18
- package/test/unit/spec/meeting-info/meetinginfov2.js +443 -114
- package/test/unit/spec/meetings/index.js +120 -2
- package/test/unit/spec/member/index.js +7 -0
- package/test/unit/spec/member/util.js +24 -0
- package/test/unit/spec/members/index.js +103 -26
- package/test/unit/spec/members/request.js +45 -22
- package/test/unit/spec/members/utils.js +33 -0
- package/test/unit/spec/reachability/clusterReachability.ts +88 -56
- package/test/unit/spec/reachability/index.ts +101 -0
- package/test/unit/spec/reachability/request.js +47 -2
- package/test/unit/spec/reconnection-manager/index.js +4 -4
- package/test/unit/spec/roap/turnDiscovery.ts +110 -28
package/dist/meeting/index.js
CHANGED
@@ -21,6 +21,7 @@ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/
|
|
21
21
|
var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
|
22
22
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
23
23
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
|
24
|
+
var _isNan = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/number/is-nan"));
|
24
25
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
25
26
|
var _weakMap = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/weak-map"));
|
26
27
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/typeof"));
|
@@ -506,6 +507,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
506
507
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "allowMediaInLobby", void 0);
|
507
508
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "localShareInstanceId", void 0);
|
508
509
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "remoteShareInstanceId", void 0);
|
510
|
+
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "shareCAEventSentStatus", void 0);
|
509
511
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "turnDiscoverySkippedReason", void 0);
|
510
512
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "turnServerUsed", void 0);
|
511
513
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "areVoiceaEventsSetup", false);
|
@@ -560,6 +562,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
560
562
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "rtcMetrics", void 0);
|
561
563
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "uploadLogsTimer", void 0);
|
562
564
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "logUploadIntervalIndex", void 0);
|
565
|
+
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "mediaServerIp", void 0);
|
563
566
|
/**
|
564
567
|
* Callback called when a relay event is received from meeting LLM Connection
|
565
568
|
* @param {RelayEvent} e Event object coming from LLM Connection
|
@@ -646,7 +649,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
646
649
|
rawError: error
|
647
650
|
}
|
648
651
|
});
|
649
|
-
} else if (error instanceof _internalMediaCore.Errors.SdpOfferHandlingError
|
652
|
+
} else if (error instanceof _internalMediaCore.Errors.SdpOfferHandlingError) {
|
650
653
|
sendBehavioralMetric(_constants2.default.PEERCONNECTION_FAILURE, error, _this.correlationId);
|
651
654
|
|
652
655
|
// @ts-ignore
|
@@ -660,6 +663,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
660
663
|
rawError: error
|
661
664
|
}
|
662
665
|
});
|
666
|
+
} else if (error instanceof _internalMediaCore.Errors.SdpAnswerHandlingError) {
|
667
|
+
sendBehavioralMetric(_constants2.default.PEERCONNECTION_FAILURE, error, _this.correlationId);
|
668
|
+
|
669
|
+
// @ts-ignore
|
670
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
671
|
+
name: 'client.media-engine.remote-sdp-received',
|
672
|
+
payload: {
|
673
|
+
canProceed: false
|
674
|
+
},
|
675
|
+
options: {
|
676
|
+
meetingId: _this.id,
|
677
|
+
rawError: error
|
678
|
+
}
|
679
|
+
});
|
680
|
+
if (_this.deferSDPAnswer) {
|
681
|
+
clearTimeout(_this.sdpResponseTimer);
|
682
|
+
_this.sdpResponseTimer = undefined;
|
683
|
+
_this.deferSDPAnswer.reject();
|
684
|
+
}
|
663
685
|
} else if (error instanceof _internalMediaCore.Errors.SdpError) {
|
664
686
|
// this covers also the case of Errors.IceGatheringError which extends Errors.SdpError
|
665
687
|
sendBehavioralMetric(_constants2.default.INVALID_ICE_CANDIDATE, error, _this.correlationId);
|
@@ -685,6 +707,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
685
707
|
*/
|
686
708
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "roapMessageReceived", function (roapMessage) {
|
687
709
|
var mediaServer = roapMessage.messageType === 'ANSWER' ? _util3.default.getMediaServer(roapMessage.sdp) : undefined;
|
710
|
+
var mediaServerIp = roapMessage.messageType === 'ANSWER' ? _util3.default.getMediaServerIp(roapMessage.sdp) : undefined;
|
688
711
|
if (_this.isMultistream && mediaServer && mediaServer !== 'homer') {
|
689
712
|
throw new _multistreamNotSupportedError.default("Client asked for multistream backend (Homer), but got ".concat(mediaServer, " instead"));
|
690
713
|
}
|
@@ -692,6 +715,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
692
715
|
if (mediaServer) {
|
693
716
|
_this.mediaProperties.webrtcMediaConnection.mediaServer = mediaServer;
|
694
717
|
}
|
718
|
+
if (_this.isMultistream && mediaServerIp) {
|
719
|
+
_this.mediaServerIp = mediaServerIp;
|
720
|
+
}
|
695
721
|
});
|
696
722
|
/**
|
697
723
|
* This function makes sure we send the right metrics when local and remote SDPs are processed/generated
|
@@ -1034,18 +1060,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1034
1060
|
* @memberof Meetings
|
1035
1061
|
*/
|
1036
1062
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "setupStatsAnalyzerEventHandlers", function () {
|
1037
|
-
_this.statsAnalyzer.on(_internalMediaCore.StatsAnalyzerEventNames.MEDIA_QUALITY, function (
|
1038
|
-
|
1039
|
-
|
1040
|
-
|
1041
|
-
|
1042
|
-
|
1043
|
-
|
1044
|
-
|
1045
|
-
|
1063
|
+
_this.statsAnalyzer.on(_internalMediaCore.StatsAnalyzerEventNames.MEDIA_QUALITY, function (event) {
|
1064
|
+
// Add IP address from geoHintInfo if missing.
|
1065
|
+
if (event.data.intervalMetadata.maskedPeerReflexiveIP === '0.0.0.0') {
|
1066
|
+
var _this$webex$meetings$;
|
1067
|
+
// @ts-ignore fix type
|
1068
|
+
var clientAddressFromGeoHint = (_this$webex$meetings$ = _this.webex.meetings.geoHintInfo) === null || _this$webex$meetings$ === void 0 ? void 0 : _this$webex$meetings$.clientAddress;
|
1069
|
+
if (clientAddressFromGeoHint) {
|
1070
|
+
event.data.intervalMetadata.maskedPeerReflexiveIP = _internalPluginMetrics.CallDiagnosticUtils.anonymizeIPAddress(clientAddressFromGeoHint);
|
1071
|
+
}
|
1072
|
+
}
|
1046
1073
|
|
1047
|
-
// Count members that are in the meeting
|
1048
|
-
|
1074
|
+
// Count members that are in the meeting.
|
1075
|
+
var members = _this.getMembers().membersCollection.members;
|
1076
|
+
event.data.intervalMetadata.meetingUserCount = (0, _values.default)(members).filter(function (member) {
|
1049
1077
|
return member.isInMeeting;
|
1050
1078
|
}).length;
|
1051
1079
|
|
@@ -1054,10 +1082,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1054
1082
|
name: 'client.mediaquality.event',
|
1055
1083
|
options: {
|
1056
1084
|
meetingId: _this.id,
|
1057
|
-
networkType:
|
1085
|
+
networkType: _this.statsAnalyzer.getNetworkType()
|
1058
1086
|
},
|
1059
1087
|
payload: {
|
1060
|
-
intervals: [
|
1088
|
+
intervals: [event.data]
|
1061
1089
|
}
|
1062
1090
|
});
|
1063
1091
|
});
|
@@ -1066,85 +1094,101 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1066
1094
|
file: 'meeting/index',
|
1067
1095
|
function: 'addMedia'
|
1068
1096
|
}, _constants.EVENT_TRIGGERS.MEETING_MEDIA_LOCAL_STARTED, data);
|
1069
|
-
|
1070
|
-
|
1071
|
-
|
1072
|
-
|
1073
|
-
|
1074
|
-
|
1075
|
-
|
1076
|
-
|
1077
|
-
|
1097
|
+
if (data.mediaType !== 'share' || !_this.shareCAEventSentStatus.transmitStart) {
|
1098
|
+
// @ts-ignore
|
1099
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
1100
|
+
name: 'client.media.tx.start',
|
1101
|
+
payload: {
|
1102
|
+
mediaType: data.mediaType,
|
1103
|
+
shareInstanceId: data.mediaType === 'share' ? _this.localShareInstanceId : undefined
|
1104
|
+
},
|
1105
|
+
options: {
|
1106
|
+
meetingId: _this.id
|
1107
|
+
}
|
1108
|
+
});
|
1109
|
+
if (data.mediaType === 'share') {
|
1110
|
+
_this.shareCAEventSentStatus.transmitStart = true;
|
1078
1111
|
}
|
1079
|
-
}
|
1112
|
+
}
|
1080
1113
|
});
|
1081
1114
|
_this.statsAnalyzer.on(_internalMediaCore.StatsAnalyzerEventNames.LOCAL_MEDIA_STOPPED, function (data) {
|
1082
|
-
|
1083
|
-
|
1084
|
-
|
1085
|
-
|
1086
|
-
|
1087
|
-
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1115
|
+
if (data.mediaType !== 'share' || !_this.shareCAEventSentStatus.transmitStop) {
|
1116
|
+
// @ts-ignore
|
1117
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
1118
|
+
name: 'client.media.tx.stop',
|
1119
|
+
payload: {
|
1120
|
+
mediaType: data.mediaType,
|
1121
|
+
shareInstanceId: data.mediaType === 'share' ? _this.localShareInstanceId : undefined
|
1122
|
+
},
|
1123
|
+
options: {
|
1124
|
+
meetingId: _this.id
|
1125
|
+
}
|
1126
|
+
});
|
1127
|
+
if (data.mediaType === 'share') {
|
1128
|
+
_this.shareCAEventSentStatus.transmitStop = true;
|
1091
1129
|
}
|
1092
|
-
}
|
1130
|
+
}
|
1093
1131
|
});
|
1094
1132
|
_this.statsAnalyzer.on(_internalMediaCore.StatsAnalyzerEventNames.REMOTE_MEDIA_STARTED, function (data) {
|
1095
1133
|
_triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
|
1096
1134
|
file: 'meeting/index',
|
1097
1135
|
function: 'addMedia'
|
1098
1136
|
}, _constants.EVENT_TRIGGERS.MEETING_MEDIA_REMOTE_STARTED, data);
|
1099
|
-
|
1100
|
-
_this.webex.internal.newMetrics.submitClientEvent({
|
1101
|
-
name: 'client.media.rx.start',
|
1102
|
-
payload: {
|
1103
|
-
mediaType: data.mediaType,
|
1104
|
-
shareInstanceId: data.mediaType === 'share' ? _this.remoteShareInstanceId : undefined
|
1105
|
-
},
|
1106
|
-
options: {
|
1107
|
-
meetingId: _this.id
|
1108
|
-
}
|
1109
|
-
});
|
1110
|
-
if (data.mediaType === 'share') {
|
1137
|
+
if (data.mediaType !== 'share' || !_this.shareCAEventSentStatus.receiveStart) {
|
1111
1138
|
// @ts-ignore
|
1112
1139
|
_this.webex.internal.newMetrics.submitClientEvent({
|
1113
|
-
name: 'client.media.
|
1140
|
+
name: 'client.media.rx.start',
|
1114
1141
|
payload: {
|
1115
|
-
mediaType:
|
1116
|
-
shareInstanceId: _this.remoteShareInstanceId
|
1142
|
+
mediaType: data.mediaType,
|
1143
|
+
shareInstanceId: data.mediaType === 'share' ? _this.remoteShareInstanceId : undefined
|
1117
1144
|
},
|
1118
1145
|
options: {
|
1119
1146
|
meetingId: _this.id
|
1120
1147
|
}
|
1121
1148
|
});
|
1149
|
+
if (data.mediaType === 'share') {
|
1150
|
+
// @ts-ignore
|
1151
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
1152
|
+
name: 'client.media.render.start',
|
1153
|
+
payload: {
|
1154
|
+
mediaType: 'share',
|
1155
|
+
shareInstanceId: _this.remoteShareInstanceId
|
1156
|
+
},
|
1157
|
+
options: {
|
1158
|
+
meetingId: _this.id
|
1159
|
+
}
|
1160
|
+
});
|
1161
|
+
_this.shareCAEventSentStatus.receiveStart = true;
|
1162
|
+
}
|
1122
1163
|
}
|
1123
1164
|
});
|
1124
1165
|
_this.statsAnalyzer.on(_internalMediaCore.StatsAnalyzerEventNames.REMOTE_MEDIA_STOPPED, function (data) {
|
1125
|
-
|
1126
|
-
_this.webex.internal.newMetrics.submitClientEvent({
|
1127
|
-
name: 'client.media.rx.stop',
|
1128
|
-
payload: {
|
1129
|
-
mediaType: data.mediaType,
|
1130
|
-
shareInstanceId: data.mediaType === 'share' ? _this.remoteShareInstanceId : undefined
|
1131
|
-
},
|
1132
|
-
options: {
|
1133
|
-
meetingId: _this.id
|
1134
|
-
}
|
1135
|
-
});
|
1136
|
-
if (data.mediaType === 'share') {
|
1166
|
+
if (data.mediaType !== 'share' || !_this.shareCAEventSentStatus.receiveStop) {
|
1137
1167
|
// @ts-ignore
|
1138
1168
|
_this.webex.internal.newMetrics.submitClientEvent({
|
1139
|
-
name: 'client.media.
|
1169
|
+
name: 'client.media.rx.stop',
|
1140
1170
|
payload: {
|
1141
|
-
mediaType:
|
1142
|
-
shareInstanceId: _this.remoteShareInstanceId
|
1171
|
+
mediaType: data.mediaType,
|
1172
|
+
shareInstanceId: data.mediaType === 'share' ? _this.remoteShareInstanceId : undefined
|
1143
1173
|
},
|
1144
1174
|
options: {
|
1145
1175
|
meetingId: _this.id
|
1146
1176
|
}
|
1147
1177
|
});
|
1178
|
+
if (data.mediaType === 'share') {
|
1179
|
+
// @ts-ignore
|
1180
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
1181
|
+
name: 'client.media.render.stop',
|
1182
|
+
payload: {
|
1183
|
+
mediaType: 'share',
|
1184
|
+
shareInstanceId: _this.remoteShareInstanceId
|
1185
|
+
},
|
1186
|
+
options: {
|
1187
|
+
meetingId: _this.id
|
1188
|
+
}
|
1189
|
+
});
|
1190
|
+
_this.shareCAEventSentStatus.receiveStop = true;
|
1191
|
+
}
|
1148
1192
|
}
|
1149
1193
|
});
|
1150
1194
|
});
|
@@ -1282,8 +1326,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1282
1326
|
* @returns {undefined}
|
1283
1327
|
*/
|
1284
1328
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleShareVideoStreamMuteStateChange", function (muted) {
|
1285
|
-
var _this$
|
1329
|
+
var _this$mediaProperties3, _this$mediaProperties4, _this$statsAnalyzer;
|
1286
1330
|
_loggerProxy.default.logger.log("Meeting:index#handleShareVideoStreamMuteStateChange --> Share video stream mute state changed to muted ".concat(muted));
|
1331
|
+
var shareVideoStreamSettings = (_this$mediaProperties3 = _this.mediaProperties) === null || _this$mediaProperties3 === void 0 ? void 0 : (_this$mediaProperties4 = _this$mediaProperties3.shareVideoStream) === null || _this$mediaProperties4 === void 0 ? void 0 : _this$mediaProperties4.getSettings();
|
1287
1332
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE, {
|
1288
1333
|
correlationId: _this.correlationId,
|
1289
1334
|
muted: muted,
|
@@ -1292,8 +1337,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1292
1337
|
// SDK to TypeScript 5, which may affect other packages, use bracket notation for now, since
|
1293
1338
|
// all we're doing here is adding metrics.
|
1294
1339
|
// eslint-disable-next-line dot-notation
|
1295
|
-
displaySurface:
|
1296
|
-
isMultistream: _this.isMultistream
|
1340
|
+
displaySurface: shareVideoStreamSettings === null || shareVideoStreamSettings === void 0 ? void 0 : shareVideoStreamSettings['displaySurface'],
|
1341
|
+
isMultistream: _this.isMultistream,
|
1342
|
+
frameRate: shareVideoStreamSettings === null || shareVideoStreamSettings === void 0 ? void 0 : shareVideoStreamSettings.frameRate
|
1297
1343
|
});
|
1298
1344
|
});
|
1299
1345
|
/**
|
@@ -2084,6 +2130,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
2084
2130
|
*/
|
2085
2131
|
_this.remoteShareInstanceId = null;
|
2086
2132
|
|
2133
|
+
/**
|
2134
|
+
* Status used for ensuring we do not oversend metrics
|
2135
|
+
* @instance
|
2136
|
+
* @private
|
2137
|
+
* @memberof Meeting
|
2138
|
+
*/
|
2139
|
+
_this.shareCAEventSentStatus = {
|
2140
|
+
transmitStart: false,
|
2141
|
+
transmitStop: false,
|
2142
|
+
receiveStart: false,
|
2143
|
+
receiveStop: false
|
2144
|
+
};
|
2145
|
+
|
2087
2146
|
/**
|
2088
2147
|
* The class that helps to control recording functions: start, stop, pause, resume, etc
|
2089
2148
|
* @instance
|
@@ -2245,6 +2304,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
2245
2304
|
* @memberof Meeting
|
2246
2305
|
*/
|
2247
2306
|
(0, _classPrivateFieldSet2.default)((0, _assertThisInitialized2.default)(_this), _isoLocalClientMeetingJoinTime, undefined);
|
2307
|
+
|
2308
|
+
// We clear the error cache of CA events on every new meeting instance
|
2309
|
+
// @ts-ignore - Fix type
|
2310
|
+
_this.webex.internal.newMetrics.callDiagnosticMetrics.clearErrorCache();
|
2311
|
+
|
2312
|
+
/**
|
2313
|
+
* IP Address of the remote media server
|
2314
|
+
* @instance
|
2315
|
+
* @type {string}
|
2316
|
+
* @private
|
2317
|
+
* @memberof Meeting
|
2318
|
+
*/
|
2319
|
+
_this.mediaServerIp = undefined;
|
2248
2320
|
return _this;
|
2249
2321
|
}
|
2250
2322
|
|
@@ -2303,6 +2375,44 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
2303
2375
|
this.callStateForMetrics.correlationId = correlationId;
|
2304
2376
|
}
|
2305
2377
|
|
2378
|
+
/**
|
2379
|
+
* Getter - Returns callStateForMetrics.userNameInput
|
2380
|
+
* @returns {string}
|
2381
|
+
*/
|
2382
|
+
}, {
|
2383
|
+
key: "userNameInput",
|
2384
|
+
get: function get() {
|
2385
|
+
var _this$callStateForMet;
|
2386
|
+
return (_this$callStateForMet = this.callStateForMetrics) === null || _this$callStateForMet === void 0 ? void 0 : _this$callStateForMet.userNameInput;
|
2387
|
+
}
|
2388
|
+
|
2389
|
+
/**
|
2390
|
+
* Setter - sets callStateForMetrics.userNameInput
|
2391
|
+
* @param {string} userNameInput
|
2392
|
+
*/,
|
2393
|
+
set: function set(userNameInput) {
|
2394
|
+
this.callStateForMetrics.userNameInput = userNameInput;
|
2395
|
+
}
|
2396
|
+
|
2397
|
+
/**
|
2398
|
+
* Getter - Returns callStateForMetrics.emailInput
|
2399
|
+
* @returns {string}
|
2400
|
+
*/
|
2401
|
+
}, {
|
2402
|
+
key: "emailInput",
|
2403
|
+
get: function get() {
|
2404
|
+
var _this$callStateForMet2;
|
2405
|
+
return (_this$callStateForMet2 = this.callStateForMetrics) === null || _this$callStateForMet2 === void 0 ? void 0 : _this$callStateForMet2.emailInput;
|
2406
|
+
}
|
2407
|
+
|
2408
|
+
/**
|
2409
|
+
* Setter - sets callStateForMetrics.emailInput
|
2410
|
+
* @param {string} emailInput
|
2411
|
+
*/,
|
2412
|
+
set: function set(emailInput) {
|
2413
|
+
this.callStateForMetrics.emailInput = emailInput;
|
2414
|
+
}
|
2415
|
+
|
2306
2416
|
/**
|
2307
2417
|
* Getter - Returns callStateForMetrics.sessionCorrelationId
|
2308
2418
|
* @returns {string}
|
@@ -2332,6 +2442,31 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
2332
2442
|
return (0, _classPrivateFieldGet2.default)(this, _isoLocalClientMeetingJoinTime);
|
2333
2443
|
}
|
2334
2444
|
|
2445
|
+
/**
|
2446
|
+
* Setter - sets isoLocalClientMeetingJoinTime
|
2447
|
+
* This will be set once on meeting join, and not updated again
|
2448
|
+
* this will always produce an ISO string
|
2449
|
+
* If the iso string is invalid, it will fallback to the current system time
|
2450
|
+
* @param {string | undefined} time
|
2451
|
+
*/,
|
2452
|
+
set: function set(time) {
|
2453
|
+
var fallback = new Date().toISOString();
|
2454
|
+
if (!time) {
|
2455
|
+
(0, _classPrivateFieldSet2.default)(this, _isoLocalClientMeetingJoinTime, fallback);
|
2456
|
+
} else {
|
2457
|
+
var date = new Date(time);
|
2458
|
+
|
2459
|
+
// Check if the date is valid
|
2460
|
+
if ((0, _isNan.default)(date.getTime())) {
|
2461
|
+
_loggerProxy.default.logger.info( // @ts-ignore
|
2462
|
+
"Meeting:index#isoLocalClientMeetingJoinTime --> Invalid date provided: ".concat(time, ". Falling back to system clock."));
|
2463
|
+
(0, _classPrivateFieldSet2.default)(this, _isoLocalClientMeetingJoinTime, fallback);
|
2464
|
+
} else {
|
2465
|
+
(0, _classPrivateFieldSet2.default)(this, _isoLocalClientMeetingJoinTime, date.toISOString());
|
2466
|
+
}
|
2467
|
+
}
|
2468
|
+
}
|
2469
|
+
|
2335
2470
|
/**
|
2336
2471
|
* Set meeting info and trigger `MEETING_INFO_AVAILABLE` event
|
2337
2472
|
* @param {any} info
|
@@ -3391,6 +3526,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3391
3526
|
state: state
|
3392
3527
|
});
|
3393
3528
|
});
|
3529
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_ANNOTATION_CHANGED, function (_ref27) {
|
3530
|
+
var state = _ref27.state;
|
3531
|
+
_triggerProxy.default.trigger(_this14, {
|
3532
|
+
file: 'meeting/index',
|
3533
|
+
function: 'setupLocusControlsListener'
|
3534
|
+
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_ANNOTATION_UPDATED, {
|
3535
|
+
state: state
|
3536
|
+
});
|
3537
|
+
});
|
3538
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_REMOTE_DESKTOP_CONTROL_CHANGED, function (_ref28) {
|
3539
|
+
var state = _ref28.state;
|
3540
|
+
_triggerProxy.default.trigger(_this14, {
|
3541
|
+
file: 'meeting/index',
|
3542
|
+
function: 'setupLocusControlsListener'
|
3543
|
+
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_REMOTE_DESKTOP_CONTROL_UPDATED, {
|
3544
|
+
state: state
|
3545
|
+
});
|
3546
|
+
});
|
3394
3547
|
}
|
3395
3548
|
|
3396
3549
|
/**
|
@@ -3430,7 +3583,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3430
3583
|
var _this15 = this;
|
3431
3584
|
// Will get triggered on local and remote share
|
3432
3585
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_MEDIA_SHARES, /*#__PURE__*/function () {
|
3433
|
-
var
|
3586
|
+
var _ref29 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(payload) {
|
3434
3587
|
var _payload$previous, _payload$previous2;
|
3435
3588
|
var _payload$current, contentShare, whiteboardShare, previousContentShare, previousWhiteboardShare, newShareStatus, _this15$locusInfo, _this15$locusInfo$inf, _this15$webinar, oldShareStatus, sendStartedSharingRemote, _this15$mediaProperti;
|
3436
3589
|
return _regenerator.default.wrap(function _callee8$(_context8) {
|
@@ -3516,6 +3669,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3516
3669
|
case 26:
|
3517
3670
|
sendStartedSharingRemote = function sendStartedSharingRemote() {
|
3518
3671
|
_this15.remoteShareInstanceId = contentShare.shareInstanceId;
|
3672
|
+
_this15.shareCAEventSentStatus.receiveStart = false;
|
3673
|
+
_this15.shareCAEventSentStatus.receiveStop = false;
|
3519
3674
|
_triggerProxy.default.trigger(_this15, {
|
3520
3675
|
file: 'meetings/index',
|
3521
3676
|
function: 'remoteShare'
|
@@ -3589,6 +3744,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3589
3744
|
// if we got here, then some remote participant has stolen
|
3590
3745
|
// the presentation from another remote participant
|
3591
3746
|
_this15.remoteShareInstanceId = contentShare.shareInstanceId;
|
3747
|
+
_this15.shareCAEventSentStatus.receiveStart = false;
|
3748
|
+
_this15.shareCAEventSentStatus.receiveStop = false;
|
3592
3749
|
_triggerProxy.default.trigger(_this15, {
|
3593
3750
|
file: 'meetings/index',
|
3594
3751
|
function: 'remoteShare'
|
@@ -3629,7 +3786,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3629
3786
|
}, _callee8, null, [[27,, 31, 34]]);
|
3630
3787
|
}));
|
3631
3788
|
return function (_x8) {
|
3632
|
-
return
|
3789
|
+
return _ref29.apply(this, arguments);
|
3633
3790
|
};
|
3634
3791
|
}());
|
3635
3792
|
}
|
@@ -3743,8 +3900,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3743
3900
|
});
|
3744
3901
|
}
|
3745
3902
|
});
|
3746
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, function (
|
3747
|
-
var isInitializing =
|
3903
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, function (_ref30) {
|
3904
|
+
var isInitializing = _ref30.isInitializing;
|
3748
3905
|
_this19.updateMeetingActions();
|
3749
3906
|
_this19.recordingController.setDisplayHints(_this19.userDisplayHints);
|
3750
3907
|
_this19.recordingController.setUserPolicy(_this19.selfUserPolicies);
|
@@ -3882,7 +4039,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3882
4039
|
_this21.updateLLMConnection();
|
3883
4040
|
});
|
3884
4041
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ADMITTED_GUEST, /*#__PURE__*/function () {
|
3885
|
-
var
|
4042
|
+
var _ref31 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(payload) {
|
3886
4043
|
var _this21$rtcMetrics;
|
3887
4044
|
return _regenerator.default.wrap(function _callee9$(_context9) {
|
3888
4045
|
while (1) switch (_context9.prev = _context9.next) {
|
@@ -3916,7 +4073,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3916
4073
|
}, _callee9);
|
3917
4074
|
}));
|
3918
4075
|
return function (_x9) {
|
3919
|
-
return
|
4076
|
+
return _ref31.apply(this, arguments);
|
3920
4077
|
};
|
3921
4078
|
}());
|
3922
4079
|
|
@@ -4035,7 +4192,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4035
4192
|
}
|
4036
4193
|
});
|
4037
4194
|
this.locusInfo.on(_constants.EVENTS.DESTROY_MEETING, /*#__PURE__*/function () {
|
4038
|
-
var
|
4195
|
+
var _ref32 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(payload) {
|
4039
4196
|
return _regenerator.default.wrap(function _callee10$(_context10) {
|
4040
4197
|
while (1) switch (_context10.prev = _context10.next) {
|
4041
4198
|
case 0:
|
@@ -4095,7 +4252,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4095
4252
|
}, _callee10, null, [[8, 14]]);
|
4096
4253
|
}));
|
4097
4254
|
return function (_x10) {
|
4098
|
-
return
|
4255
|
+
return _ref32.apply(this, arguments);
|
4099
4256
|
};
|
4100
4257
|
}());
|
4101
4258
|
}
|
@@ -4197,6 +4354,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4197
4354
|
key: "beRightBack",
|
4198
4355
|
value: (function () {
|
4199
4356
|
var _beRightBack = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(enabled) {
|
4357
|
+
var _this24 = this;
|
4200
4358
|
var errorMessage, error, _errorMessage, _error;
|
4201
4359
|
return _regenerator.default.wrap(function _callee11$(_context11) {
|
4202
4360
|
while (1) switch (_context11.prev = _context11.next) {
|
@@ -4219,7 +4377,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4219
4377
|
_loggerProxy.default.logger.error(_error);
|
4220
4378
|
return _context11.abrupt("return", _promise.default.reject(_error));
|
4221
4379
|
case 10:
|
4222
|
-
return _context11.abrupt("return", this.brbState.enable(enabled, this.sendSlotManager))
|
4380
|
+
return _context11.abrupt("return", this.brbState.enable(enabled, this.sendSlotManager).then(function () {
|
4381
|
+
if (_this24.audio && enabled) {
|
4382
|
+
// locus mutes the participant with brb enabled request,
|
4383
|
+
// so we need to explicitly update remote mute for correct logic flow
|
4384
|
+
_this24.audio.handleServerRemoteMuteUpdate(_this24, enabled);
|
4385
|
+
}
|
4386
|
+
}));
|
4223
4387
|
case 11:
|
4224
4388
|
case "end":
|
4225
4389
|
return _context11.stop();
|
@@ -4405,7 +4569,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4405
4569
|
canAdmitParticipant: _util2.default.canAdmitParticipant(this.userDisplayHints),
|
4406
4570
|
canLock: _util2.default.canUserLock(this.userDisplayHints),
|
4407
4571
|
canUnlock: _util2.default.canUserUnlock(this.userDisplayHints),
|
4408
|
-
canShareWhiteBoard: _util2.default.canShareWhiteBoard(this.userDisplayHints),
|
4572
|
+
canShareWhiteBoard: _util2.default.canShareWhiteBoard(this.userDisplayHints, this.selfUserPolicies),
|
4409
4573
|
canSetDisallowUnmute: _util5.default.canSetDisallowUnmute(this.userDisplayHints),
|
4410
4574
|
canUnsetDisallowUnmute: _util5.default.canUnsetDisallowUnmute(this.userDisplayHints),
|
4411
4575
|
canSetMuteOnEntry: _util5.default.canSetMuteOnEntry(this.userDisplayHints),
|
@@ -4435,6 +4599,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4435
4599
|
canSelectSpokenLanguages: _util2.default.canSelectSpokenLanguages(this.userDisplayHints),
|
4436
4600
|
waitingForOthersToJoin: _util2.default.waitingForOthersToJoin(this.userDisplayHints),
|
4437
4601
|
canSendReactions: _util2.default.canSendReactions(this.inMeetingActions.canSendReactions, this.userDisplayHints),
|
4602
|
+
requiresPostMeetingDataConsentPrompt: _util2.default.requiresPostMeetingDataConsentPrompt(this.userDisplayHints),
|
4438
4603
|
canManageBreakout: _util2.default.canManageBreakout(this.userDisplayHints),
|
4439
4604
|
canStartBreakout: _util2.default.canStartBreakout(this.userDisplayHints),
|
4440
4605
|
canBroadcastMessageToBreakout: _util2.default.canBroadcastMessageToBreakout(this.userDisplayHints, this.selfUserPolicies),
|
@@ -4443,6 +4608,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4443
4608
|
canUserAskForHelp: _util2.default.canUserAskForHelp(this.userDisplayHints),
|
4444
4609
|
canUserRenameSelfAndObserved: _util2.default.canUserRenameSelfAndObserved(this.userDisplayHints),
|
4445
4610
|
canUserRenameOthers: _util2.default.canUserRenameOthers(this.userDisplayHints),
|
4611
|
+
canMoveToLobby: _util2.default.canMoveToLobby(this.userDisplayHints),
|
4446
4612
|
canMuteAll: _util5.default.hasHints({
|
4447
4613
|
requiredHints: [_constants.DISPLAY_HINTS.MUTE_ALL],
|
4448
4614
|
displayHints: this.userDisplayHints
|
@@ -4610,6 +4776,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4610
4776
|
canAnnotate: _util5.default.hasPolicies({
|
4611
4777
|
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_ANNOTATION],
|
4612
4778
|
policies: this.selfUserPolicies
|
4779
|
+
}),
|
4780
|
+
canEnableAnnotation: _util5.default.hasHints({
|
4781
|
+
requiredHints: [_constants.DISPLAY_HINTS.ENABLE_ANNOTATION_MEETING_OPTION],
|
4782
|
+
displayHints: this.userDisplayHints
|
4783
|
+
}),
|
4784
|
+
canDisableAnnotation: _util5.default.hasHints({
|
4785
|
+
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_ANNOTATION_MEETING_OPTION],
|
4786
|
+
displayHints: this.userDisplayHints
|
4787
|
+
}),
|
4788
|
+
canEnableRemoteDesktopControl: _util5.default.hasHints({
|
4789
|
+
requiredHints: [_constants.DISPLAY_HINTS.ENABLE_RDC_MEETING_OPTION],
|
4790
|
+
displayHints: this.userDisplayHints
|
4791
|
+
}),
|
4792
|
+
canDisableRemoteDesktopControl: _util5.default.hasHints({
|
4793
|
+
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_RDC_MEETING_OPTION],
|
4794
|
+
displayHints: this.userDisplayHints
|
4613
4795
|
})
|
4614
4796
|
}) || changed;
|
4615
4797
|
}
|
@@ -4714,7 +4896,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4714
4896
|
}, {
|
4715
4897
|
key: "setLogUploadTimer",
|
4716
4898
|
value: function setLogUploadTimer() {
|
4717
|
-
var
|
4899
|
+
var _this25 = this;
|
4718
4900
|
// start with short timeouts and increase them later on so in case users have very long multi-hour meetings we don't get too fragmented logs
|
4719
4901
|
var LOG_UPLOAD_INTERVALS = [0.1, 15, 30, 60]; // in minutes
|
4720
4902
|
|
@@ -4725,15 +4907,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4725
4907
|
this.logUploadIntervalIndex += 1;
|
4726
4908
|
}
|
4727
4909
|
this.uploadLogsTimer = (0, _commonTimers.safeSetTimeout)(function () {
|
4728
|
-
|
4729
|
-
|
4910
|
+
_this25.uploadLogsTimer = undefined;
|
4911
|
+
_this25.uploadLogs();
|
4730
4912
|
|
4731
4913
|
// just as an extra precaution, to avoid uploading logs forever in case something goes wrong
|
4732
4914
|
// and the page remains opened, we stop it if there is no media connection
|
4733
|
-
if (!
|
4915
|
+
if (!_this25.mediaProperties.webrtcMediaConnection) {
|
4734
4916
|
return;
|
4735
4917
|
}
|
4736
|
-
|
4918
|
+
_this25.setLogUploadTimer();
|
4737
4919
|
}, delay);
|
4738
4920
|
}
|
4739
4921
|
|
@@ -4800,7 +4982,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4800
4982
|
}, {
|
4801
4983
|
key: "closeRemoteStreams",
|
4802
4984
|
value: function closeRemoteStreams() {
|
4803
|
-
var
|
4985
|
+
var _this26 = this;
|
4804
4986
|
var _this$mediaProperties6 = this.mediaProperties,
|
4805
4987
|
remoteAudioStream = _this$mediaProperties6.remoteAudioStream,
|
4806
4988
|
remoteVideoStream = _this$mediaProperties6.remoteVideoStream,
|
@@ -4814,7 +4996,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4814
4996
|
*/
|
4815
4997
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
4816
4998
|
var triggerMediaStoppedEvent = function triggerMediaStoppedEvent(mediaType) {
|
4817
|
-
_triggerProxy.default.trigger(
|
4999
|
+
_triggerProxy.default.trigger(_this26, {
|
4818
5000
|
file: 'meeting/index',
|
4819
5001
|
function: 'closeRemoteStreams'
|
4820
5002
|
}, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
|
@@ -5122,7 +5304,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5122
5304
|
}, {
|
5123
5305
|
key: "setMercuryListener",
|
5124
5306
|
value: function setMercuryListener() {
|
5125
|
-
var
|
5307
|
+
var _this27 = this;
|
5126
5308
|
// Client will have a socket manager and handle reconnecting to mercury, when we reconnect to mercury
|
5127
5309
|
// if the meeting has active peer connections, it should try to reconnect.
|
5128
5310
|
// @ts-ignore
|
@@ -5130,33 +5312,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5130
5312
|
_loggerProxy.default.logger.info('Meeting:index#setMercuryListener --> Web socket online');
|
5131
5313
|
|
5132
5314
|
// Only send restore event when it was disconnected before and for connected later
|
5133
|
-
if (!
|
5315
|
+
if (!_this27.hasWebsocketConnected) {
|
5134
5316
|
// @ts-ignore
|
5135
|
-
|
5317
|
+
_this27.webex.internal.newMetrics.submitClientEvent({
|
5136
5318
|
name: 'client.mercury.connection.restored',
|
5137
5319
|
options: {
|
5138
|
-
meetingId:
|
5320
|
+
meetingId: _this27.id
|
5139
5321
|
}
|
5140
5322
|
});
|
5141
5323
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_RESTORED, {
|
5142
|
-
correlation_id:
|
5324
|
+
correlation_id: _this27.correlationId
|
5143
5325
|
});
|
5144
5326
|
}
|
5145
|
-
|
5327
|
+
_this27.hasWebsocketConnected = true;
|
5146
5328
|
});
|
5147
5329
|
|
5148
5330
|
// @ts-ignore
|
5149
5331
|
this.webex.internal.mercury.on(_constants.OFFLINE, function () {
|
5150
5332
|
_loggerProxy.default.logger.error('Meeting:index#setMercuryListener --> Web socket offline');
|
5151
5333
|
// @ts-ignore
|
5152
|
-
|
5334
|
+
_this27.webex.internal.newMetrics.submitClientEvent({
|
5153
5335
|
name: 'client.mercury.connection.lost',
|
5154
5336
|
options: {
|
5155
|
-
meetingId:
|
5337
|
+
meetingId: _this27.id
|
5156
5338
|
}
|
5157
5339
|
});
|
5158
5340
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_FAILURE, {
|
5159
|
-
correlation_id:
|
5341
|
+
correlation_id: _this27.correlationId
|
5160
5342
|
});
|
5161
5343
|
});
|
5162
5344
|
}
|
@@ -5263,7 +5445,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5263
5445
|
}, {
|
5264
5446
|
key: "muteAudio",
|
5265
5447
|
value: function muteAudio() {
|
5266
|
-
var
|
5448
|
+
var _this28 = this;
|
5267
5449
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5268
5450
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5269
5451
|
}
|
@@ -5279,22 +5461,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5279
5461
|
|
5280
5462
|
// First, stop sending the local audio media
|
5281
5463
|
return logRequest(this.audio.handleClientRequest(this, true).then(function () {
|
5282
|
-
_util2.default.handleAudioLogging(
|
5464
|
+
_util2.default.handleAudioLogging(_this28.mediaProperties.audioStream);
|
5283
5465
|
// @ts-ignore
|
5284
|
-
|
5466
|
+
_this28.webex.internal.newMetrics.submitClientEvent({
|
5285
5467
|
name: 'client.muted',
|
5286
5468
|
payload: {
|
5287
5469
|
trigger: 'user-interaction',
|
5288
5470
|
mediaType: 'audio'
|
5289
5471
|
},
|
5290
5472
|
options: {
|
5291
|
-
meetingId:
|
5473
|
+
meetingId: _this28.id
|
5292
5474
|
}
|
5293
5475
|
});
|
5294
5476
|
}).catch(function (error) {
|
5295
5477
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_AUDIO_FAILURE, {
|
5296
|
-
correlation_id:
|
5297
|
-
locus_id:
|
5478
|
+
correlation_id: _this28.correlationId,
|
5479
|
+
locus_id: _this28.locusUrl.split('/').pop(),
|
5298
5480
|
reason: error.message,
|
5299
5481
|
stack: error.stack
|
5300
5482
|
});
|
@@ -5313,7 +5495,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5313
5495
|
}, {
|
5314
5496
|
key: "unmuteAudio",
|
5315
5497
|
value: function unmuteAudio() {
|
5316
|
-
var
|
5498
|
+
var _this29 = this;
|
5317
5499
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5318
5500
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5319
5501
|
}
|
@@ -5329,22 +5511,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5329
5511
|
|
5330
5512
|
// First, send the control to unmute the participant on the server
|
5331
5513
|
return logRequest(this.audio.handleClientRequest(this, false).then(function () {
|
5332
|
-
_util2.default.handleAudioLogging(
|
5514
|
+
_util2.default.handleAudioLogging(_this29.mediaProperties.audioStream);
|
5333
5515
|
// @ts-ignore
|
5334
|
-
|
5516
|
+
_this29.webex.internal.newMetrics.submitClientEvent({
|
5335
5517
|
name: 'client.unmuted',
|
5336
5518
|
payload: {
|
5337
5519
|
trigger: 'user-interaction',
|
5338
5520
|
mediaType: 'audio'
|
5339
5521
|
},
|
5340
5522
|
options: {
|
5341
|
-
meetingId:
|
5523
|
+
meetingId: _this29.id
|
5342
5524
|
}
|
5343
5525
|
});
|
5344
5526
|
}).catch(function (error) {
|
5345
5527
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_AUDIO_FAILURE, {
|
5346
|
-
correlation_id:
|
5347
|
-
locus_id:
|
5528
|
+
correlation_id: _this29.correlationId,
|
5529
|
+
locus_id: _this29.locusUrl.split('/').pop(),
|
5348
5530
|
reason: error.message,
|
5349
5531
|
stack: error.stack
|
5350
5532
|
});
|
@@ -5363,7 +5545,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5363
5545
|
}, {
|
5364
5546
|
key: "muteVideo",
|
5365
5547
|
value: function muteVideo() {
|
5366
|
-
var
|
5548
|
+
var _this30 = this;
|
5367
5549
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5368
5550
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5369
5551
|
}
|
@@ -5377,22 +5559,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5377
5559
|
return _promise.default.reject(new _parameter.default('no video control associated to the meeting'));
|
5378
5560
|
}
|
5379
5561
|
return logRequest(this.video.handleClientRequest(this, true).then(function () {
|
5380
|
-
_util2.default.handleVideoLogging(
|
5562
|
+
_util2.default.handleVideoLogging(_this30.mediaProperties.videoStream);
|
5381
5563
|
// @ts-ignore
|
5382
|
-
|
5564
|
+
_this30.webex.internal.newMetrics.submitClientEvent({
|
5383
5565
|
name: 'client.muted',
|
5384
5566
|
payload: {
|
5385
5567
|
trigger: 'user-interaction',
|
5386
5568
|
mediaType: 'video'
|
5387
5569
|
},
|
5388
5570
|
options: {
|
5389
|
-
meetingId:
|
5571
|
+
meetingId: _this30.id
|
5390
5572
|
}
|
5391
5573
|
});
|
5392
5574
|
}).catch(function (error) {
|
5393
5575
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_VIDEO_FAILURE, {
|
5394
|
-
correlation_id:
|
5395
|
-
locus_id:
|
5576
|
+
correlation_id: _this30.correlationId,
|
5577
|
+
locus_id: _this30.locusUrl.split('/').pop(),
|
5396
5578
|
reason: error.message,
|
5397
5579
|
stack: error.stack
|
5398
5580
|
});
|
@@ -5411,7 +5593,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5411
5593
|
}, {
|
5412
5594
|
key: "unmuteVideo",
|
5413
5595
|
value: function unmuteVideo() {
|
5414
|
-
var
|
5596
|
+
var _this31 = this;
|
5415
5597
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5416
5598
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5417
5599
|
}
|
@@ -5425,22 +5607,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5425
5607
|
return _promise.default.reject(new _parameter.default('no audio control associated to the meeting'));
|
5426
5608
|
}
|
5427
5609
|
return logRequest(this.video.handleClientRequest(this, false).then(function () {
|
5428
|
-
_util2.default.handleVideoLogging(
|
5610
|
+
_util2.default.handleVideoLogging(_this31.mediaProperties.videoStream);
|
5429
5611
|
// @ts-ignore
|
5430
|
-
|
5612
|
+
_this31.webex.internal.newMetrics.submitClientEvent({
|
5431
5613
|
name: 'client.unmuted',
|
5432
5614
|
payload: {
|
5433
5615
|
trigger: 'user-interaction',
|
5434
5616
|
mediaType: 'video'
|
5435
5617
|
},
|
5436
5618
|
options: {
|
5437
|
-
meetingId:
|
5619
|
+
meetingId: _this31.id
|
5438
5620
|
}
|
5439
5621
|
});
|
5440
5622
|
}).catch(function (error) {
|
5441
5623
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_VIDEO_FAILURE, {
|
5442
|
-
correlation_id:
|
5443
|
-
locus_id:
|
5624
|
+
correlation_id: _this31.correlationId,
|
5625
|
+
locus_id: _this31.locusUrl.split('/').pop(),
|
5444
5626
|
reason: error.message,
|
5445
5627
|
stack: error.stack
|
5446
5628
|
});
|
@@ -5470,7 +5652,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5470
5652
|
key: "joinWithMedia",
|
5471
5653
|
value: (function () {
|
5472
5654
|
var _joinWithMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
|
5473
|
-
var
|
5655
|
+
var _this32 = this;
|
5474
5656
|
var options,
|
5475
5657
|
mediaOptions,
|
5476
5658
|
_options$joinOptions,
|
@@ -5553,7 +5735,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5553
5735
|
case 35:
|
5554
5736
|
_context16.next = 37;
|
5555
5737
|
return this.addMediaInternal(function () {
|
5556
|
-
return
|
5738
|
+
return _this32.joinWithMediaRetryInfo.isRetry ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
5557
5739
|
}, turnServerInfo, forceTurnDiscovery, mediaOptions);
|
5558
5740
|
case 37:
|
5559
5741
|
mediaResponse = _context16.sent;
|
@@ -5648,7 +5830,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5648
5830
|
}, {
|
5649
5831
|
key: "reconnect",
|
5650
5832
|
value: function reconnect(options) {
|
5651
|
-
var
|
5833
|
+
var _this33 = this;
|
5652
5834
|
_loggerProxy.default.logger.log("Meeting:index#reconnect --> attempting to reconnect meeting ".concat(this.id));
|
5653
5835
|
if (!this.reconnectionManager || !this.reconnectionManager.reconnect) {
|
5654
5836
|
return _promise.default.reject(new _parameter.default('Cannot reconnect, ReconnectionManager must first be defined.'));
|
@@ -5664,10 +5846,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5664
5846
|
while (1) switch (_context17.prev = _context17.next) {
|
5665
5847
|
case 0:
|
5666
5848
|
_context17.next = 2;
|
5667
|
-
return
|
5849
|
+
return _this33.waitForRemoteSDPAnswer();
|
5668
5850
|
case 2:
|
5669
5851
|
_context17.next = 4;
|
5670
|
-
return
|
5852
|
+
return _this33.waitForMediaConnectionConnected();
|
5671
5853
|
case 4:
|
5672
5854
|
case "end":
|
5673
5855
|
return _context17.stop();
|
@@ -5681,7 +5863,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5681
5863
|
return _promise.default.resolve();
|
5682
5864
|
}
|
5683
5865
|
_loggerProxy.default.logger.error('Meeting:index#reconnect --> Meeting reconnect failed', error);
|
5684
|
-
|
5866
|
+
_this33.uploadLogs({
|
5685
5867
|
file: 'meeting/index',
|
5686
5868
|
function: 'reconnect'
|
5687
5869
|
});
|
@@ -5728,19 +5910,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5728
5910
|
}, {
|
5729
5911
|
key: "setCaptionLanguage",
|
5730
5912
|
value: function setCaptionLanguage(language) {
|
5731
|
-
var
|
5913
|
+
var _this34 = this;
|
5732
5914
|
return new _promise.default(function (resolve, reject) {
|
5733
|
-
if (!
|
5915
|
+
if (!_this34.isTranscriptionSupported()) {
|
5734
5916
|
_loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
|
5735
5917
|
reject(new Error('Webex Assistant is not enabled/supported'));
|
5736
5918
|
}
|
5737
5919
|
try {
|
5738
5920
|
var voiceaListenerCaptionUpdate = function voiceaListenerCaptionUpdate(payload) {
|
5739
5921
|
// @ts-ignore
|
5740
|
-
|
5922
|
+
_this34.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
|
5741
5923
|
var statusCode = payload.statusCode;
|
5742
5924
|
if (statusCode === 200) {
|
5743
|
-
|
5925
|
+
_this34.transcription.languageOptions = _objectSpread(_objectSpread({}, _this34.transcription.languageOptions), {}, {
|
5744
5926
|
currentCaptionLanguage: language
|
5745
5927
|
});
|
5746
5928
|
resolve(language);
|
@@ -5749,9 +5931,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5749
5931
|
}
|
5750
5932
|
};
|
5751
5933
|
// @ts-ignore
|
5752
|
-
|
5934
|
+
_this34.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
|
5753
5935
|
// @ts-ignore
|
5754
|
-
|
5936
|
+
_this34.webex.internal.voicea.requestLanguage(language);
|
5755
5937
|
} catch (error) {
|
5756
5938
|
_loggerProxy.default.logger.error("Meeting:index#setCaptionLanguage --> ".concat(error));
|
5757
5939
|
reject(error);
|
@@ -5767,23 +5949,23 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5767
5949
|
}, {
|
5768
5950
|
key: "setSpokenLanguage",
|
5769
5951
|
value: function setSpokenLanguage(language) {
|
5770
|
-
var
|
5952
|
+
var _this35 = this;
|
5771
5953
|
return new _promise.default(function (resolve, reject) {
|
5772
|
-
if (!
|
5954
|
+
if (!_this35.isTranscriptionSupported()) {
|
5773
5955
|
_loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
|
5774
5956
|
reject(new Error('Webex Assistant is not enabled/supported'));
|
5775
5957
|
}
|
5776
|
-
if (
|
5958
|
+
if (_this35.getCurUserType() !== 'host') {
|
5777
5959
|
_loggerProxy.default.logger.error('Meeting:index#setSpokenLanguage --> Only host can set spoken language');
|
5778
5960
|
reject(new Error('Only host can set spoken language'));
|
5779
5961
|
}
|
5780
5962
|
try {
|
5781
5963
|
var voiceaListenerLanguageUpdate = function voiceaListenerLanguageUpdate(payload) {
|
5782
5964
|
// @ts-ignore
|
5783
|
-
|
5965
|
+
_this35.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
|
5784
5966
|
var languageCode = payload.languageCode;
|
5785
5967
|
if (languageCode) {
|
5786
|
-
|
5968
|
+
_this35.transcription.languageOptions = _objectSpread(_objectSpread({}, _this35.transcription.languageOptions), {}, {
|
5787
5969
|
currentSpokenLanguage: languageCode
|
5788
5970
|
});
|
5789
5971
|
resolve(languageCode);
|
@@ -5793,10 +5975,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5793
5975
|
};
|
5794
5976
|
|
5795
5977
|
// @ts-ignore
|
5796
|
-
|
5978
|
+
_this35.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
|
5797
5979
|
|
5798
5980
|
// @ts-ignore
|
5799
|
-
|
5981
|
+
_this35.webex.internal.voicea.setSpokenLanguage(language);
|
5800
5982
|
} catch (error) {
|
5801
5983
|
_loggerProxy.default.logger.error("Meeting:index#setSpokenLanguage --> ".concat(error));
|
5802
5984
|
reject(error);
|
@@ -5919,7 +6101,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5919
6101
|
*/
|
5920
6102
|
function () {
|
5921
6103
|
var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
|
5922
|
-
var
|
6104
|
+
var _this36 = this;
|
5923
6105
|
var options,
|
5924
6106
|
errorMessage,
|
5925
6107
|
error,
|
@@ -6068,62 +6250,61 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6068
6250
|
return _context19.abrupt("return", _promise.default.reject(_context19.t0));
|
6069
6251
|
case 51:
|
6070
6252
|
return _context19.abrupt("return", _util2.default.joinMeetingOptions(this, options).then(function (join) {
|
6071
|
-
|
6072
|
-
|
6253
|
+
_this36.meetingFiniteStateMachine.join();
|
6254
|
+
_this36.setupLocusMediaRequest();
|
6073
6255
|
|
6074
6256
|
// @ts-ignore
|
6075
|
-
|
6076
|
-
(0, _classPrivateFieldSet2.default)(_this35, _isoLocalClientMeetingJoinTime, new Date().toISOString());
|
6257
|
+
_this36.webex.internal.device.meetingStarted();
|
6077
6258
|
_loggerProxy.default.logger.log('Meeting:index#join --> Success');
|
6078
6259
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
|
6079
|
-
correlation_id:
|
6260
|
+
correlation_id: _this36.correlationId
|
6080
6261
|
});
|
6081
6262
|
joinSuccess(join);
|
6082
|
-
|
6263
|
+
_this36.deferJoin = undefined;
|
6083
6264
|
return join;
|
6084
6265
|
}).catch(function (error) {
|
6085
|
-
var
|
6086
|
-
|
6266
|
+
var _this36$meetingInfo, _error$error;
|
6267
|
+
_this36.meetingFiniteStateMachine.fail(error);
|
6087
6268
|
_loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
|
6088
6269
|
|
6089
6270
|
// @ts-ignore
|
6090
|
-
|
6271
|
+
_this36.webex.internal.newMetrics.submitClientEvent({
|
6091
6272
|
name: 'client.locus.join.response',
|
6092
6273
|
payload: {
|
6093
6274
|
identifiers: {
|
6094
|
-
meetingLookupUrl: (
|
6275
|
+
meetingLookupUrl: (_this36$meetingInfo = _this36.meetingInfo) === null || _this36$meetingInfo === void 0 ? void 0 : _this36$meetingInfo.meetingLookupUrl
|
6095
6276
|
}
|
6096
6277
|
},
|
6097
6278
|
options: {
|
6098
|
-
meetingId:
|
6279
|
+
meetingId: _this36.id,
|
6099
6280
|
rawError: error
|
6100
6281
|
}
|
6101
6282
|
});
|
6102
6283
|
|
6103
6284
|
// TODO: change this to error codes and pre defined dictionary
|
6104
6285
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
|
6105
|
-
correlation_id:
|
6286
|
+
correlation_id: _this36.correlationId,
|
6106
6287
|
reason: (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.message,
|
6107
6288
|
stack: error.stack
|
6108
6289
|
});
|
6109
6290
|
|
6110
6291
|
// Upload logs on join Failure
|
6111
|
-
_triggerProxy.default.trigger(
|
6292
|
+
_triggerProxy.default.trigger(_this36, {
|
6112
6293
|
file: 'meeting/index',
|
6113
6294
|
function: 'join'
|
6114
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
6295
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this36);
|
6115
6296
|
joinFailed(error);
|
6116
|
-
|
6297
|
+
_this36.deferJoin = undefined;
|
6117
6298
|
return _promise.default.reject(error);
|
6118
6299
|
}).then(function (join) {
|
6119
6300
|
// @ts-ignore - config coming from registerPlugin
|
6120
|
-
if (
|
6301
|
+
if (_this36.config.enableAutomaticLLM) {
|
6121
6302
|
// @ts-ignore
|
6122
|
-
|
6123
|
-
|
6303
|
+
_this36.webex.internal.llm.on('online', _this36.handleLLMOnline);
|
6304
|
+
_this36.updateLLMConnection().catch(function (error) {
|
6124
6305
|
_loggerProxy.default.logger.error('Meeting:index#join --> Transcription Socket Connection Failed', error);
|
6125
6306
|
_metrics.default.sendBehavioralMetric(_constants2.default.LLM_CONNECTION_AFTER_JOIN_FAILURE, {
|
6126
|
-
correlation_id:
|
6307
|
+
correlation_id: _this36.correlationId,
|
6127
6308
|
reason: error === null || error === void 0 ? void 0 : error.message,
|
6128
6309
|
stack: error.stack
|
6129
6310
|
});
|
@@ -6155,7 +6336,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6155
6336
|
key: "updateLLMConnection",
|
6156
6337
|
value: (function () {
|
6157
6338
|
var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20() {
|
6158
|
-
var
|
6339
|
+
var _this37 = this;
|
6159
6340
|
var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, practiceSessionDatachannelUrl, isJoined, dataChannelUrl;
|
6160
6341
|
return _regenerator.default.wrap(function _callee20$(_context20) {
|
6161
6342
|
while (1) switch (_context20.prev = _context20.next) {
|
@@ -6195,9 +6376,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6195
6376
|
case 11:
|
6196
6377
|
return _context20.abrupt("return", this.webex.internal.llm.registerAndConnect(url, dataChannelUrl).then(function (registerAndConnectResult) {
|
6197
6378
|
// @ts-ignore - Fix type
|
6198
|
-
|
6379
|
+
_this37.webex.internal.llm.off('event:relay.event', _this37.processRelayEvent);
|
6199
6380
|
// @ts-ignore - Fix type
|
6200
|
-
|
6381
|
+
_this37.webex.internal.llm.on('event:relay.event', _this37.processRelayEvent);
|
6201
6382
|
_loggerProxy.default.logger.info('Meeting:index#updateLLMConnection --> enabled to receive relay events!');
|
6202
6383
|
return _promise.default.resolve(registerAndConnectResult);
|
6203
6384
|
}));
|
@@ -6251,7 +6432,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6251
6432
|
}, {
|
6252
6433
|
key: "dialInPstn",
|
6253
6434
|
value: function dialInPstn() {
|
6254
|
-
var
|
6435
|
+
var _this38 = this;
|
6255
6436
|
if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
|
6256
6437
|
|
6257
6438
|
var correlationId = this.correlationId,
|
@@ -6267,10 +6448,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6267
6448
|
}).catch(function (error) {
|
6268
6449
|
var _error$error2;
|
6269
6450
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
|
6270
|
-
correlation_id:
|
6271
|
-
dial_in_url:
|
6451
|
+
correlation_id: _this38.correlationId,
|
6452
|
+
dial_in_url: _this38.dialInUrl,
|
6272
6453
|
locus_id: locusUrl.split('/').pop(),
|
6273
|
-
client_url:
|
6454
|
+
client_url: _this38.deviceUrl,
|
6274
6455
|
reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
|
6275
6456
|
stack: error.stack
|
6276
6457
|
});
|
@@ -6288,7 +6469,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6288
6469
|
}, {
|
6289
6470
|
key: "dialOutPstn",
|
6290
6471
|
value: function dialOutPstn(phoneNumber) {
|
6291
|
-
var
|
6472
|
+
var _this39 = this;
|
6292
6473
|
if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
|
6293
6474
|
|
6294
6475
|
var correlationId = this.correlationId,
|
@@ -6305,10 +6486,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6305
6486
|
}).catch(function (error) {
|
6306
6487
|
var _error$error3;
|
6307
6488
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
|
6308
|
-
correlation_id:
|
6309
|
-
dial_out_url:
|
6489
|
+
correlation_id: _this39.correlationId,
|
6490
|
+
dial_out_url: _this39.dialOutUrl,
|
6310
6491
|
locus_id: locusUrl.split('/').pop(),
|
6311
|
-
client_url:
|
6492
|
+
client_url: _this39.deviceUrl,
|
6312
6493
|
reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
|
6313
6494
|
stack: error.stack
|
6314
6495
|
});
|
@@ -6339,7 +6520,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6339
6520
|
}, {
|
6340
6521
|
key: "moveTo",
|
6341
6522
|
value: function moveTo(resourceId) {
|
6342
|
-
var
|
6523
|
+
var _this40 = this;
|
6343
6524
|
if (!resourceId) {
|
6344
6525
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
6345
6526
|
}
|
@@ -6383,12 +6564,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6383
6564
|
while (1) switch (_context21.prev = _context21.next) {
|
6384
6565
|
case 0:
|
6385
6566
|
_context21.prev = 0;
|
6386
|
-
if (!(
|
6567
|
+
if (!(_this40.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
|
6387
6568
|
_context21.next = 4;
|
6388
6569
|
break;
|
6389
6570
|
}
|
6390
6571
|
_context21.next = 4;
|
6391
|
-
return
|
6572
|
+
return _this40.releaseScreenShareFloor();
|
6392
6573
|
case 4:
|
6393
6574
|
mediaSettings = {
|
6394
6575
|
mediaDirection: {
|
@@ -6400,37 +6581,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6400
6581
|
receiveShare: true
|
6401
6582
|
}
|
6402
6583
|
};
|
6403
|
-
|
6404
|
-
|
6584
|
+
_this40.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
|
6585
|
+
_this40.mediaProperties.unsetRemoteMedia();
|
6405
6586
|
|
6406
6587
|
// 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
|
6407
6588
|
// once the device answers we close the old connection and create new media server connection with only share enabled
|
6408
|
-
if (!
|
6589
|
+
if (!_this40.statsAnalyzer) {
|
6409
6590
|
_context21.next = 10;
|
6410
6591
|
break;
|
6411
6592
|
}
|
6412
6593
|
_context21.next = 10;
|
6413
|
-
return
|
6594
|
+
return _this40.statsAnalyzer.stopAnalyzer();
|
6414
6595
|
case 10:
|
6415
6596
|
_context21.next = 12;
|
6416
|
-
return
|
6597
|
+
return _this40.closeRemoteStreams();
|
6417
6598
|
case 12:
|
6418
6599
|
_context21.next = 14;
|
6419
|
-
return
|
6600
|
+
return _this40.closePeerConnections();
|
6420
6601
|
case 14:
|
6421
|
-
|
6422
|
-
|
6423
|
-
|
6424
|
-
|
6602
|
+
_this40.cleanupLocalStreams();
|
6603
|
+
_this40.unsetRemoteStreams();
|
6604
|
+
_this40.unsetPeerConnections();
|
6605
|
+
_this40.reconnectionManager.cleanUp();
|
6425
6606
|
_context21.next = 20;
|
6426
|
-
return
|
6607
|
+
return _this40.addMedia({
|
6427
6608
|
audioEnabled: false,
|
6428
6609
|
videoEnabled: false,
|
6429
6610
|
shareVideoEnabled: true
|
6430
6611
|
});
|
6431
6612
|
case 20:
|
6432
6613
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
|
6433
|
-
|
6614
|
+
_this40.isMoveToInProgress = false;
|
6434
6615
|
_context21.next = 29;
|
6435
6616
|
break;
|
6436
6617
|
case 24:
|
@@ -6438,12 +6619,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6438
6619
|
_context21.t0 = _context21["catch"](0);
|
6439
6620
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context21.t0);
|
6440
6621
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
6441
|
-
correlation_id:
|
6442
|
-
locus_id:
|
6622
|
+
correlation_id: _this40.correlationId,
|
6623
|
+
locus_id: _this40.locusUrl.split('/').pop(),
|
6443
6624
|
reason: _context21.t0.message,
|
6444
6625
|
stack: _context21.t0.stack
|
6445
6626
|
});
|
6446
|
-
|
6627
|
+
_this40.isMoveToInProgress = false;
|
6447
6628
|
case 29:
|
6448
6629
|
case "end":
|
6449
6630
|
return _context21.stop();
|
@@ -6459,17 +6640,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6459
6640
|
resourceId: resourceId,
|
6460
6641
|
moveToResource: true
|
6461
6642
|
}).then(function () {
|
6462
|
-
|
6643
|
+
_this40.meetingFiniteStateMachine.join();
|
6463
6644
|
}).catch(function (error) {
|
6464
|
-
|
6645
|
+
_this40.meetingFiniteStateMachine.fail(error);
|
6465
6646
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
6466
|
-
correlation_id:
|
6467
|
-
locus_id:
|
6647
|
+
correlation_id: _this40.correlationId,
|
6648
|
+
locus_id: _this40.locusUrl.split('/').pop(),
|
6468
6649
|
reason: error.message,
|
6469
6650
|
stack: error.stack
|
6470
6651
|
});
|
6471
6652
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', error);
|
6472
|
-
|
6653
|
+
_this40.isMoveToInProgress = false;
|
6473
6654
|
return _promise.default.reject(error);
|
6474
6655
|
});
|
6475
6656
|
}
|
@@ -6484,7 +6665,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6484
6665
|
}, {
|
6485
6666
|
key: "moveFrom",
|
6486
6667
|
value: function moveFrom(resourceId) {
|
6487
|
-
var
|
6668
|
+
var _this41 = this;
|
6488
6669
|
// On moveFrom ask the developer to re capture it moveFrom then updateMedia
|
6489
6670
|
if (!resourceId) {
|
6490
6671
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
@@ -6499,19 +6680,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6499
6680
|
}
|
6500
6681
|
});
|
6501
6682
|
return _util2.default.joinMeetingOptions(this).then(function () {
|
6502
|
-
return _util2.default.leaveMeeting(
|
6683
|
+
return _util2.default.leaveMeeting(_this41, {
|
6503
6684
|
resourceId: resourceId,
|
6504
6685
|
correlationId: oldCorrelationId,
|
6505
6686
|
moveMeeting: true
|
6506
6687
|
}).then(function () {
|
6507
|
-
|
6688
|
+
_this41.resourceId = '';
|
6508
6689
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
|
6509
6690
|
});
|
6510
6691
|
}).catch(function (error) {
|
6511
|
-
|
6692
|
+
_this41.meetingFiniteStateMachine.fail(error);
|
6512
6693
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
|
6513
|
-
correlation_id:
|
6514
|
-
locus_id:
|
6694
|
+
correlation_id: _this41.correlationId,
|
6695
|
+
locus_id: _this41.locusUrl.split('/').pop(),
|
6515
6696
|
reason: error.message,
|
6516
6697
|
stack: error.stack
|
6517
6698
|
});
|
@@ -6560,7 +6741,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6560
6741
|
turnServerInfo: turnServerInfo,
|
6561
6742
|
bundlePolicy: bundlePolicy,
|
6562
6743
|
// @ts-ignore - config coming from registerPlugin
|
6563
|
-
iceCandidatesTimeout: this.config.iceCandidatesGatheringTimeout
|
6744
|
+
iceCandidatesTimeout: this.config.iceCandidatesGatheringTimeout,
|
6745
|
+
// @ts-ignore - config coming from registerPlugin
|
6746
|
+
disableAudioMainDtx: this.config.experimental.disableAudioMainDtx
|
6564
6747
|
});
|
6565
6748
|
this.mediaProperties.setMediaPeerConnection(mc);
|
6566
6749
|
this.setupMediaConnectionListeners();
|
@@ -6627,9 +6810,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6627
6810
|
}, {
|
6628
6811
|
key: "forwardEvent",
|
6629
6812
|
value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
|
6630
|
-
var
|
6813
|
+
var _this42 = this;
|
6631
6814
|
eventEmitter.on(eventTypeToForward, function (data) {
|
6632
|
-
return _triggerProxy.default.trigger(
|
6815
|
+
return _triggerProxy.default.trigger(_this42, {
|
6633
6816
|
file: 'meetings',
|
6634
6817
|
function: 'addMedia'
|
6635
6818
|
}, meetingEventType, data);
|
@@ -6699,7 +6882,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6699
6882
|
key: "waitForMediaConnectionConnected",
|
6700
6883
|
value: (function () {
|
6701
6884
|
var _waitForMediaConnectionConnected = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24() {
|
6702
|
-
var iceConnected, _this$mediaProperties8, _this$mediaProperties9, _this$mediaProperties10, _this$mediaProperties11, _this$mediaProperties12, _this$mediaProperties13, _this$mediaProperties14;
|
6885
|
+
var iceConnected, _this$mediaProperties8, _this$mediaProperties9, _this$mediaProperties10, _this$mediaProperties11, _this$mediaProperties12, _this$mediaProperties13, _this$mediaProperties14, timedOutError;
|
6703
6886
|
return _regenerator.default.wrap(function _callee24$(_context24) {
|
6704
6887
|
while (1) switch (_context24.prev = _context24.next) {
|
6705
6888
|
case 0:
|
@@ -6707,7 +6890,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6707
6890
|
_context24.next = 3;
|
6708
6891
|
return this.mediaProperties.waitForMediaConnectionConnected();
|
6709
6892
|
case 3:
|
6710
|
-
_context24.next =
|
6893
|
+
_context24.next = 32;
|
6711
6894
|
break;
|
6712
6895
|
case 5:
|
6713
6896
|
_context24.prev = 5;
|
@@ -6749,7 +6932,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6749
6932
|
errors: _context24.t14
|
6750
6933
|
};
|
6751
6934
|
_context24.t16 = {
|
6752
|
-
meetingId: this.id
|
6935
|
+
meetingId: this.id,
|
6936
|
+
rawError: _context24.t0
|
6753
6937
|
};
|
6754
6938
|
_context24.t17 = {
|
6755
6939
|
name: 'client.ice.end',
|
@@ -6758,8 +6942,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6758
6942
|
};
|
6759
6943
|
_context24.t1.submitClientEvent.call(_context24.t1, _context24.t17);
|
6760
6944
|
case 29:
|
6761
|
-
|
6762
|
-
|
6945
|
+
timedOutError = new Error("Timed out waiting for media connection to be connected, correlationId=".concat(this.correlationId));
|
6946
|
+
timedOutError.cause = _context24.t0;
|
6947
|
+
throw timedOutError;
|
6948
|
+
case 32:
|
6763
6949
|
case "end":
|
6764
6950
|
return _context24.stop();
|
6765
6951
|
}
|
@@ -6790,6 +6976,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6790
6976
|
networkQualityMonitor: this.networkQualityMonitor,
|
6791
6977
|
isMultistream: this.isMultistream
|
6792
6978
|
});
|
6979
|
+
this.shareCAEventSentStatus = {
|
6980
|
+
transmitStart: false,
|
6981
|
+
transmitStop: false,
|
6982
|
+
receiveStart: false,
|
6983
|
+
receiveStop: false
|
6984
|
+
};
|
6793
6985
|
this.setupStatsAnalyzerEventHandlers();
|
6794
6986
|
this.networkQualityMonitor.on(_internalMediaCore.NetworkQualityEventNames.NETWORK_QUALITY, this.sendNetworkQualityEvent.bind(this));
|
6795
6987
|
}
|
@@ -6806,7 +6998,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6806
6998
|
key: "waitForRemoteSDPAnswer",
|
6807
6999
|
value: (function () {
|
6808
7000
|
var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25() {
|
6809
|
-
var
|
7001
|
+
var _this43 = this;
|
6810
7002
|
var LOG_HEADER, deferSDPAnswer;
|
6811
7003
|
return _regenerator.default.wrap(function _callee25$(_context25) {
|
6812
7004
|
while (1) switch (_context25.prev = _context25.next) {
|
@@ -6822,23 +7014,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6822
7014
|
deferSDPAnswer = this.deferSDPAnswer;
|
6823
7015
|
this.sdpResponseTimer = setTimeout(function () {
|
6824
7016
|
_loggerProxy.default.logger.warn("".concat(LOG_HEADER, " timeout! no REMOTE SDP ANSWER received within ").concat(_constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT / 1000, " seconds"));
|
7017
|
+
var error = new Error('Timed out waiting for REMOTE SDP ANSWER');
|
7018
|
+
|
6825
7019
|
// @ts-ignore
|
6826
|
-
|
7020
|
+
_this43.webex.internal.newMetrics.submitClientEvent({
|
6827
7021
|
name: 'client.media-engine.remote-sdp-received',
|
6828
7022
|
payload: {
|
6829
7023
|
canProceed: false,
|
6830
7024
|
errors: [
|
6831
7025
|
// @ts-ignore
|
6832
|
-
|
7026
|
+
_this43.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
|
6833
7027
|
clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
|
6834
7028
|
})]
|
6835
7029
|
},
|
6836
7030
|
options: {
|
6837
|
-
meetingId:
|
6838
|
-
rawError:
|
7031
|
+
meetingId: _this43.id,
|
7032
|
+
rawError: error
|
6839
7033
|
}
|
6840
7034
|
});
|
6841
|
-
deferSDPAnswer.reject(
|
7035
|
+
deferSDPAnswer.reject(error);
|
6842
7036
|
}, _constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT);
|
6843
7037
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " waiting for REMOTE SDP ANSWER..."));
|
6844
7038
|
return _context25.abrupt("return", deferSDPAnswer.promise);
|
@@ -6978,7 +7172,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6978
7172
|
break;
|
6979
7173
|
case 7:
|
6980
7174
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " error waiting for media to connect using UDP, TCP and TURN-TLS"), error);
|
6981
|
-
throw new _webexErrors.AddMediaFailed();
|
7175
|
+
throw new _webexErrors.AddMediaFailed(error);
|
6982
7176
|
case 9:
|
6983
7177
|
case "end":
|
6984
7178
|
return _context28.stop();
|
@@ -7341,10 +7535,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7341
7535
|
}, {
|
7342
7536
|
key: "addMedia",
|
7343
7537
|
value: function addMedia() {
|
7344
|
-
var
|
7538
|
+
var _this44 = this;
|
7345
7539
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
7346
7540
|
return this.addMediaInternal(function () {
|
7347
|
-
return
|
7541
|
+
return _this44.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
7348
7542
|
}, undefined, false, options);
|
7349
7543
|
}
|
7350
7544
|
|
@@ -7382,8 +7576,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7382
7576
|
connectionType,
|
7383
7577
|
selectedCandidatePairChanges,
|
7384
7578
|
numTransports,
|
7385
|
-
reachabilityStats,
|
7386
7579
|
iceCandidateErrors,
|
7580
|
+
reachabilityMetrics,
|
7387
7581
|
_this$mediaProperties15,
|
7388
7582
|
_this$mediaProperties16,
|
7389
7583
|
_this$mediaProperties17,
|
@@ -7405,7 +7599,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7405
7599
|
_this$mediaProperties33,
|
7406
7600
|
_this$mediaProperties34,
|
7407
7601
|
_this$mediaProperties35,
|
7408
|
-
|
7602
|
+
_reachabilityMetrics,
|
7409
7603
|
_yield$this$mediaProp2,
|
7410
7604
|
_selectedCandidatePairChanges,
|
7411
7605
|
_numTransports,
|
@@ -7528,11 +7722,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7528
7722
|
connectionType = _yield$this$mediaProp.connectionType;
|
7529
7723
|
selectedCandidatePairChanges = _yield$this$mediaProp.selectedCandidatePairChanges;
|
7530
7724
|
numTransports = _yield$this$mediaProp.numTransports;
|
7531
|
-
_context35.next = 52;
|
7532
|
-
return this.webex.meetings.reachability.getReachabilityMetrics();
|
7533
|
-
case 52:
|
7534
|
-
reachabilityStats = _context35.sent;
|
7535
7725
|
iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
|
7726
|
+
_context35.next = 53;
|
7727
|
+
return this.getMediaReachabilityMetricFields();
|
7728
|
+
case 53:
|
7729
|
+
reachabilityMetrics = _context35.sent;
|
7536
7730
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, _objectSpread(_objectSpread(_objectSpread({
|
7537
7731
|
correlation_id: this.correlationId,
|
7538
7732
|
locus_id: this.locusUrl.split('/').pop(),
|
@@ -7542,7 +7736,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7542
7736
|
isMultistream: this.isMultistream,
|
7543
7737
|
retriedWithTurnServer: this.addMediaData.retriedWithTurnServer,
|
7544
7738
|
isJoinWithMediaRetry: this.joinWithMediaRetryInfo.isRetry
|
7545
|
-
},
|
7739
|
+
}, reachabilityMetrics), iceCandidateErrors), {}, {
|
7546
7740
|
iceCandidatesCount: this.iceCandidatesCount
|
7547
7741
|
}));
|
7548
7742
|
// @ts-ignore
|
@@ -7566,9 +7760,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7566
7760
|
|
7567
7761
|
// @ts-ignore
|
7568
7762
|
_context35.next = 66;
|
7569
|
-
return this.
|
7763
|
+
return this.getMediaReachabilityMetricFields();
|
7570
7764
|
case 66:
|
7571
|
-
|
7765
|
+
_reachabilityMetrics = _context35.sent;
|
7572
7766
|
_context35.next = 69;
|
7573
7767
|
return this.mediaProperties.getCurrentConnectionInfo();
|
7574
7768
|
case 69:
|
@@ -7592,7 +7786,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7592
7786
|
signalingState: ((_this$mediaProperties15 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties15 === void 0 ? void 0 : (_this$mediaProperties16 = _this$mediaProperties15.multistreamConnection) === null || _this$mediaProperties16 === void 0 ? void 0 : (_this$mediaProperties17 = _this$mediaProperties16.pc) === null || _this$mediaProperties17 === void 0 ? void 0 : (_this$mediaProperties18 = _this$mediaProperties17.pc) === null || _this$mediaProperties18 === void 0 ? void 0 : _this$mediaProperties18.signalingState) || ((_this$mediaProperties19 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties19 === void 0 ? void 0 : (_this$mediaProperties20 = _this$mediaProperties19.mediaConnection) === null || _this$mediaProperties20 === void 0 ? void 0 : (_this$mediaProperties21 = _this$mediaProperties20.pc) === null || _this$mediaProperties21 === void 0 ? void 0 : _this$mediaProperties21.signalingState) || 'unknown',
|
7593
7787
|
connectionState: ((_this$mediaProperties22 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties22 === void 0 ? void 0 : (_this$mediaProperties23 = _this$mediaProperties22.multistreamConnection) === null || _this$mediaProperties23 === void 0 ? void 0 : (_this$mediaProperties24 = _this$mediaProperties23.pc) === null || _this$mediaProperties24 === void 0 ? void 0 : (_this$mediaProperties25 = _this$mediaProperties24.pc) === null || _this$mediaProperties25 === void 0 ? void 0 : _this$mediaProperties25.connectionState) || ((_this$mediaProperties26 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties26 === void 0 ? void 0 : (_this$mediaProperties27 = _this$mediaProperties26.mediaConnection) === null || _this$mediaProperties27 === void 0 ? void 0 : (_this$mediaProperties28 = _this$mediaProperties27.pc) === null || _this$mediaProperties28 === void 0 ? void 0 : _this$mediaProperties28.connectionState) || 'unknown',
|
7594
7788
|
iceConnectionState: ((_this$mediaProperties29 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties29 === void 0 ? void 0 : (_this$mediaProperties30 = _this$mediaProperties29.multistreamConnection) === null || _this$mediaProperties30 === void 0 ? void 0 : (_this$mediaProperties31 = _this$mediaProperties30.pc) === null || _this$mediaProperties31 === void 0 ? void 0 : (_this$mediaProperties32 = _this$mediaProperties31.pc) === null || _this$mediaProperties32 === void 0 ? void 0 : _this$mediaProperties32.iceConnectionState) || ((_this$mediaProperties33 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties33 === void 0 ? void 0 : (_this$mediaProperties34 = _this$mediaProperties33.mediaConnection) === null || _this$mediaProperties34 === void 0 ? void 0 : (_this$mediaProperties35 = _this$mediaProperties34.pc) === null || _this$mediaProperties35 === void 0 ? void 0 : _this$mediaProperties35.iceConnectionState) || 'unknown'
|
7595
|
-
},
|
7789
|
+
}, _reachabilityMetrics), _iceCandidateErrors), {}, {
|
7596
7790
|
iceCandidatesCount: this.iceCandidatesCount
|
7597
7791
|
}));
|
7598
7792
|
_context35.next = 76;
|
@@ -7649,7 +7843,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7649
7843
|
* @memberof Meeting
|
7650
7844
|
*/
|
7651
7845
|
function enqueueMediaUpdate(mediaUpdateType) {
|
7652
|
-
var
|
7846
|
+
var _this45 = this;
|
7653
7847
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
7654
7848
|
var canUpdateMediaNow = this.canUpdateMedia();
|
7655
7849
|
return new _promise.default(function (resolve, reject) {
|
@@ -7660,9 +7854,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7660
7854
|
options: options
|
7661
7855
|
};
|
7662
7856
|
_loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
|
7663
|
-
|
7857
|
+
_this45.queuedMediaUpdates.push(queueItem);
|
7664
7858
|
if (canUpdateMediaNow) {
|
7665
|
-
|
7859
|
+
_this45.processNextQueuedMediaUpdate();
|
7666
7860
|
}
|
7667
7861
|
});
|
7668
7862
|
}
|
@@ -7767,7 +7961,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7767
7961
|
}, {
|
7768
7962
|
key: "acknowledge",
|
7769
7963
|
value: function acknowledge(type) {
|
7770
|
-
var
|
7964
|
+
var _this46 = this;
|
7771
7965
|
if (!type) {
|
7772
7966
|
return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
|
7773
7967
|
}
|
@@ -7779,12 +7973,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7779
7973
|
}).then(function (response) {
|
7780
7974
|
return _promise.default.resolve(response);
|
7781
7975
|
}).then(function (response) {
|
7782
|
-
|
7976
|
+
_this46.meetingFiniteStateMachine.ring(type);
|
7783
7977
|
// @ts-ignore
|
7784
|
-
|
7978
|
+
_this46.webex.internal.newMetrics.submitClientEvent({
|
7785
7979
|
name: 'client.alert.displayed',
|
7786
7980
|
options: {
|
7787
|
-
meetingId:
|
7981
|
+
meetingId: _this46.id
|
7788
7982
|
}
|
7789
7983
|
});
|
7790
7984
|
return _promise.default.resolve({
|
@@ -7809,12 +8003,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7809
8003
|
}, {
|
7810
8004
|
key: "decline",
|
7811
8005
|
value: function decline(reason) {
|
7812
|
-
var
|
8006
|
+
var _this47 = this;
|
7813
8007
|
return _util2.default.declineMeeting(this, reason).then(function (decline) {
|
7814
|
-
|
8008
|
+
_this47.meetingFiniteStateMachine.decline();
|
7815
8009
|
return _promise.default.resolve(decline);
|
7816
8010
|
}).catch(function (error) {
|
7817
|
-
|
8011
|
+
_this47.meetingFiniteStateMachine.fail(error);
|
7818
8012
|
return _promise.default.reject(error);
|
7819
8013
|
});
|
7820
8014
|
}
|
@@ -7865,7 +8059,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7865
8059
|
}, {
|
7866
8060
|
key: "leave",
|
7867
8061
|
value: function leave() {
|
7868
|
-
var
|
8062
|
+
var _this48 = this;
|
7869
8063
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
7870
8064
|
var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
|
7871
8065
|
|
@@ -7877,7 +8071,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7877
8071
|
var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
7878
8072
|
return (
|
7879
8073
|
// @ts-ignore
|
7880
|
-
|
8074
|
+
_this48.webex.internal.newMetrics.submitClientEvent({
|
7881
8075
|
name: 'client.call.leave',
|
7882
8076
|
payload: _objectSpread({
|
7883
8077
|
trigger: 'user-interaction',
|
@@ -7885,7 +8079,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7885
8079
|
leaveReason: options.clientEventLeaveReason
|
7886
8080
|
}, payload),
|
7887
8081
|
options: {
|
7888
|
-
meetingId:
|
8082
|
+
meetingId: _this48.id
|
7889
8083
|
}
|
7890
8084
|
})
|
7891
8085
|
);
|
@@ -7894,24 +8088,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7894
8088
|
return _util2.default.leaveMeeting(this, options).then(function (leave) {
|
7895
8089
|
// CA team recommends submitting this *after* locus /leave
|
7896
8090
|
submitLeaveMetric();
|
7897
|
-
|
7898
|
-
|
8091
|
+
_this48.meetingFiniteStateMachine.leave();
|
8092
|
+
_this48.clearMeetingData();
|
7899
8093
|
|
7900
8094
|
// upload logs on leave irrespective of meeting delete
|
7901
|
-
_triggerProxy.default.trigger(
|
8095
|
+
_triggerProxy.default.trigger(_this48, {
|
7902
8096
|
file: 'meeting/index',
|
7903
8097
|
function: 'leave'
|
7904
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8098
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this48);
|
7905
8099
|
|
7906
8100
|
// TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
|
7907
|
-
if (
|
8101
|
+
if (_this48.wirelessShare || _this48.guest) {
|
7908
8102
|
// If screen sharing clean the meeting object
|
7909
|
-
_triggerProxy.default.trigger(
|
8103
|
+
_triggerProxy.default.trigger(_this48, {
|
7910
8104
|
file: 'meeting/index',
|
7911
8105
|
function: 'leave'
|
7912
8106
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
7913
8107
|
reason: options.reason,
|
7914
|
-
meetingId:
|
8108
|
+
meetingId: _this48.id
|
7915
8109
|
});
|
7916
8110
|
}
|
7917
8111
|
_loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
|
@@ -7928,16 +8122,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7928
8122
|
shownToUser: false
|
7929
8123
|
}]
|
7930
8124
|
});
|
7931
|
-
|
8125
|
+
_this48.meetingFiniteStateMachine.fail(error);
|
7932
8126
|
_loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
|
7933
8127
|
// upload logs on leave irrespective of meeting delete
|
7934
|
-
_triggerProxy.default.trigger(
|
8128
|
+
_triggerProxy.default.trigger(_this48, {
|
7935
8129
|
file: 'meeting/index',
|
7936
8130
|
function: 'leave'
|
7937
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8131
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this48);
|
7938
8132
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
|
7939
|
-
correlation_id:
|
7940
|
-
locus_id:
|
8133
|
+
correlation_id: _this48.correlationId,
|
8134
|
+
locus_id: _this48.locusUrl.split('/').pop(),
|
7941
8135
|
reason: error.message,
|
7942
8136
|
stack: error.stack,
|
7943
8137
|
code: error.code
|
@@ -7957,7 +8151,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7957
8151
|
}, {
|
7958
8152
|
key: "startWhiteboardShare",
|
7959
8153
|
value: function startWhiteboardShare(channelUrl, resourceToken) {
|
7960
|
-
var
|
8154
|
+
var _this49 = this;
|
7961
8155
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
7962
8156
|
return element.name === 'whiteboard';
|
7963
8157
|
});
|
@@ -7986,13 +8180,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7986
8180
|
body.resourceToken = resourceToken;
|
7987
8181
|
}
|
7988
8182
|
return this.meetingRequest.changeMeetingFloor(body).then(function () {
|
7989
|
-
|
8183
|
+
_this49.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
7990
8184
|
return _promise.default.resolve();
|
7991
8185
|
}).catch(function (error) {
|
7992
8186
|
_loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
|
7993
8187
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
|
7994
|
-
correlation_id:
|
7995
|
-
locus_id:
|
8188
|
+
correlation_id: _this49.correlationId,
|
8189
|
+
locus_id: _this49.locusUrl.split('/').pop(),
|
7996
8190
|
reason: error.message,
|
7997
8191
|
stack: error.stack,
|
7998
8192
|
board: {
|
@@ -8015,7 +8209,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8015
8209
|
}, {
|
8016
8210
|
key: "stopWhiteboardShare",
|
8017
8211
|
value: function stopWhiteboardShare(channelUrl) {
|
8018
|
-
var
|
8212
|
+
var _this50 = this;
|
8019
8213
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
8020
8214
|
return element.name === 'whiteboard';
|
8021
8215
|
});
|
@@ -8038,8 +8232,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8038
8232
|
}).catch(function (error) {
|
8039
8233
|
_loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
|
8040
8234
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
|
8041
|
-
correlation_id:
|
8042
|
-
locus_id:
|
8235
|
+
correlation_id: _this50.correlationId,
|
8236
|
+
locus_id: _this50.locusUrl.split('/').pop(),
|
8043
8237
|
reason: error.message,
|
8044
8238
|
stack: error.stack,
|
8045
8239
|
board: {
|
@@ -8061,7 +8255,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8061
8255
|
}, {
|
8062
8256
|
key: "requestScreenShareFloor",
|
8063
8257
|
value: function requestScreenShareFloor() {
|
8064
|
-
var
|
8258
|
+
var _this51 = this;
|
8065
8259
|
if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
|
8066
8260
|
_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, ")"));
|
8067
8261
|
this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
@@ -8092,34 +8286,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8092
8286
|
resourceUrl: this.resourceUrl,
|
8093
8287
|
shareInstanceId: this.localShareInstanceId
|
8094
8288
|
}).then(function () {
|
8095
|
-
|
8289
|
+
_this51.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
|
8096
8290
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
|
8097
|
-
correlation_id:
|
8098
|
-
locus_id:
|
8291
|
+
correlation_id: _this51.correlationId,
|
8292
|
+
locus_id: _this51.locusUrl.split('/').pop()
|
8099
8293
|
});
|
8100
8294
|
return _promise.default.resolve();
|
8101
8295
|
}).catch(function (error) {
|
8102
8296
|
_loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
|
8103
8297
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
|
8104
|
-
correlation_id:
|
8105
|
-
locus_id:
|
8298
|
+
correlation_id: _this51.correlationId,
|
8299
|
+
locus_id: _this51.locusUrl.split('/').pop(),
|
8106
8300
|
reason: error.message,
|
8107
8301
|
stack: error.stack
|
8108
8302
|
});
|
8109
8303
|
|
8110
8304
|
// @ts-ignore
|
8111
|
-
|
8305
|
+
_this51.webex.internal.newMetrics.submitClientEvent({
|
8112
8306
|
name: 'client.share.floor-granted.local',
|
8113
8307
|
payload: {
|
8114
8308
|
mediaType: 'share',
|
8115
8309
|
errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
|
8116
|
-
shareInstanceId:
|
8310
|
+
shareInstanceId: _this51.localShareInstanceId
|
8117
8311
|
},
|
8118
8312
|
options: {
|
8119
|
-
meetingId:
|
8313
|
+
meetingId: _this51.id
|
8120
8314
|
}
|
8121
8315
|
});
|
8122
|
-
|
8316
|
+
_this51.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
8123
8317
|
return _promise.default.reject(error);
|
8124
8318
|
});
|
8125
8319
|
}
|
@@ -8142,10 +8336,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8142
8336
|
}, {
|
8143
8337
|
key: "requestScreenShareFloorIfPending",
|
8144
8338
|
value: function requestScreenShareFloorIfPending() {
|
8145
|
-
var
|
8339
|
+
var _this52 = this;
|
8146
8340
|
if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
|
8147
8341
|
this.requestScreenShareFloor().then(function () {
|
8148
|
-
|
8342
|
+
_this52.floorGrantPending = false;
|
8149
8343
|
});
|
8150
8344
|
}
|
8151
8345
|
}
|
@@ -8159,7 +8353,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8159
8353
|
}, {
|
8160
8354
|
key: "releaseScreenShareFloor",
|
8161
8355
|
value: function releaseScreenShareFloor() {
|
8162
|
-
var
|
8356
|
+
var _this53 = this;
|
8163
8357
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
8164
8358
|
return element.name === _constants.CONTENT;
|
8165
8359
|
});
|
@@ -8194,8 +8388,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8194
8388
|
}).catch(function (error) {
|
8195
8389
|
_loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
|
8196
8390
|
_metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
|
8197
|
-
correlation_id:
|
8198
|
-
locus_id:
|
8391
|
+
correlation_id: _this53.correlationId,
|
8392
|
+
locus_id: _this53.locusUrl.split('/').pop(),
|
8199
8393
|
reason: error.message,
|
8200
8394
|
stack: error.stack
|
8201
8395
|
});
|
@@ -8375,7 +8569,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8375
8569
|
}, {
|
8376
8570
|
key: "changeVideoLayout",
|
8377
8571
|
value: function changeVideoLayout(layoutType) {
|
8378
|
-
var
|
8572
|
+
var _this54 = this;
|
8379
8573
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
8380
8574
|
var main = renderInfo.main,
|
8381
8575
|
content = renderInfo.content;
|
@@ -8429,7 +8623,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8429
8623
|
}
|
8430
8624
|
this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
|
8431
8625
|
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
|
8432
|
-
_triggerProxy.default.trigger(
|
8626
|
+
_triggerProxy.default.trigger(_this54, {
|
8433
8627
|
file: 'meeting/index',
|
8434
8628
|
function: 'changeVideoLayout'
|
8435
8629
|
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
|
@@ -8545,7 +8739,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8545
8739
|
}, {
|
8546
8740
|
key: "endMeetingForAll",
|
8547
8741
|
value: function endMeetingForAll() {
|
8548
|
-
var
|
8742
|
+
var _this55 = this;
|
8549
8743
|
// @ts-ignore
|
8550
8744
|
this.webex.internal.newMetrics.submitClientEvent({
|
8551
8745
|
name: 'client.call.leave',
|
@@ -8563,25 +8757,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8563
8757
|
locus_id: this.locusId
|
8564
8758
|
});
|
8565
8759
|
return _util2.default.endMeetingForAll(this).then(function (end) {
|
8566
|
-
|
8567
|
-
|
8760
|
+
_this55.meetingFiniteStateMachine.end();
|
8761
|
+
_this55.clearMeetingData();
|
8568
8762
|
// upload logs on leave irrespective of meeting delete
|
8569
|
-
_triggerProxy.default.trigger(
|
8763
|
+
_triggerProxy.default.trigger(_this55, {
|
8570
8764
|
file: 'meeting/index',
|
8571
8765
|
function: 'endMeetingForAll'
|
8572
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8766
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this55);
|
8573
8767
|
return end;
|
8574
8768
|
}).catch(function (error) {
|
8575
|
-
|
8769
|
+
_this55.meetingFiniteStateMachine.fail(error);
|
8576
8770
|
_loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
|
8577
8771
|
// upload logs on leave irrespective of meeting delete
|
8578
|
-
_triggerProxy.default.trigger(
|
8772
|
+
_triggerProxy.default.trigger(_this55, {
|
8579
8773
|
file: 'meeting/index',
|
8580
8774
|
function: 'endMeetingForAll'
|
8581
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8775
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this55);
|
8582
8776
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
|
8583
|
-
correlation_id:
|
8584
|
-
locus_id:
|
8777
|
+
correlation_id: _this55.correlationId,
|
8778
|
+
locus_id: _this55.locusUrl.split('/').pop(),
|
8585
8779
|
reason: error.message,
|
8586
8780
|
stack: error.stack,
|
8587
8781
|
code: error.code
|
@@ -8646,6 +8840,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8646
8840
|
});
|
8647
8841
|
}
|
8648
8842
|
|
8843
|
+
/**
|
8844
|
+
* Method to set post meeting data consent.
|
8845
|
+
*
|
8846
|
+
* @param {boolean} accept - whether consent accepted or declined
|
8847
|
+
* @returns {Promise}
|
8848
|
+
* @public
|
8849
|
+
* @memberof Meeting
|
8850
|
+
*/
|
8851
|
+
}, {
|
8852
|
+
key: "setPostMeetingDataConsent",
|
8853
|
+
value: function setPostMeetingDataConsent(accept) {
|
8854
|
+
return this.meetingRequest.setPostMeetingDataConsent({
|
8855
|
+
postMeetingDataConsent: accept,
|
8856
|
+
locusUrl: this.locusUrl,
|
8857
|
+
deviceUrl: this.deviceUrl,
|
8858
|
+
selfId: this.members.selfId
|
8859
|
+
});
|
8860
|
+
}
|
8861
|
+
|
8649
8862
|
/**
|
8650
8863
|
* Throws if we don't have a media connection created
|
8651
8864
|
*
|
@@ -8723,7 +8936,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8723
8936
|
_this$mediaProperties43,
|
8724
8937
|
_this$mediaProperties44,
|
8725
8938
|
_this$mediaProperties45,
|
8726
|
-
|
8939
|
+
_this56 = this;
|
8727
8940
|
var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
|
8728
8941
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
|
8729
8942
|
if (!this.canUpdateMedia()) {
|
@@ -8748,8 +8961,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8748
8961
|
}).catch(function (error) {
|
8749
8962
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
|
8750
8963
|
_metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
|
8751
|
-
correlation_id:
|
8752
|
-
locus_id:
|
8964
|
+
correlation_id: _this56.correlationId,
|
8965
|
+
locus_id: _this56.locusUrl.split('/').pop(),
|
8753
8966
|
reason: error.message,
|
8754
8967
|
stack: error.stack
|
8755
8968
|
});
|
@@ -8971,10 +9184,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8971
9184
|
return this.updateTranscodedMediaConnection();
|
8972
9185
|
case 31:
|
8973
9186
|
if (!floorRequestNeeded) {
|
8974
|
-
_context40.next =
|
9187
|
+
_context40.next = 39;
|
8975
9188
|
break;
|
8976
9189
|
}
|
8977
9190
|
this.localShareInstanceId = _uuid.default.v4();
|
9191
|
+
this.shareCAEventSentStatus.transmitStart = false;
|
9192
|
+
this.shareCAEventSentStatus.transmitStop = false;
|
8978
9193
|
|
8979
9194
|
// @ts-ignore
|
8980
9195
|
this.webex.internal.newMetrics.submitClientEvent({
|
@@ -8995,9 +9210,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8995
9210
|
// we're sending the http request to Locus to request the screen share floor
|
8996
9211
|
// only after the SDP update, because that's how it's always been done for transcoded meetings
|
8997
9212
|
// and also if sharing from the start, we need confluence to have been created
|
8998
|
-
_context40.next =
|
9213
|
+
_context40.next = 39;
|
8999
9214
|
return this.enqueueScreenShareFloorRequest();
|
9000
|
-
case
|
9215
|
+
case 39:
|
9001
9216
|
case "end":
|
9002
9217
|
return _context40.stop();
|
9003
9218
|
}
|
@@ -9135,6 +9350,51 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
9135
9350
|
}
|
9136
9351
|
return _promise.default.resolve();
|
9137
9352
|
}
|
9353
|
+
|
9354
|
+
/**
|
9355
|
+
* Gets the media reachability metrics
|
9356
|
+
*
|
9357
|
+
* @returns {Promise<MediaReachabilityMetrics>}
|
9358
|
+
*/
|
9359
|
+
}, {
|
9360
|
+
key: "getMediaReachabilityMetricFields",
|
9361
|
+
value: (function () {
|
9362
|
+
var _getMediaReachabilityMetricFields = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee42() {
|
9363
|
+
var reachabilityMetrics, successKeys, totalSuccessCases, isSubnetReachable;
|
9364
|
+
return _regenerator.default.wrap(function _callee42$(_context42) {
|
9365
|
+
while (1) switch (_context42.prev = _context42.next) {
|
9366
|
+
case 0:
|
9367
|
+
_context42.next = 2;
|
9368
|
+
return this.webex.meetings.reachability.getReachabilityMetrics();
|
9369
|
+
case 2:
|
9370
|
+
reachabilityMetrics = _context42.sent;
|
9371
|
+
successKeys = ['reachability_public_udp_success', 'reachability_public_tcp_success', 'reachability_public_xtls_success', 'reachability_vmn_udp_success', 'reachability_vmn_tcp_success', 'reachability_vmn_xtls_success'];
|
9372
|
+
totalSuccessCases = successKeys.reduce(function (total, key) {
|
9373
|
+
var value = reachabilityMetrics[key];
|
9374
|
+
if (typeof value === 'number') {
|
9375
|
+
return total + value;
|
9376
|
+
}
|
9377
|
+
return total;
|
9378
|
+
}, 0);
|
9379
|
+
isSubnetReachable = null;
|
9380
|
+
if (totalSuccessCases > 0) {
|
9381
|
+
// @ts-ignore
|
9382
|
+
isSubnetReachable = this.webex.meetings.reachability.isSubnetReachable(this.mediaServerIp);
|
9383
|
+
}
|
9384
|
+
return _context42.abrupt("return", _objectSpread(_objectSpread({}, reachabilityMetrics), {}, {
|
9385
|
+
isSubnetReachable: isSubnetReachable
|
9386
|
+
}));
|
9387
|
+
case 8:
|
9388
|
+
case "end":
|
9389
|
+
return _context42.stop();
|
9390
|
+
}
|
9391
|
+
}, _callee42, this);
|
9392
|
+
}));
|
9393
|
+
function getMediaReachabilityMetricFields() {
|
9394
|
+
return _getMediaReachabilityMetricFields.apply(this, arguments);
|
9395
|
+
}
|
9396
|
+
return getMediaReachabilityMetricFields;
|
9397
|
+
}())
|
9138
9398
|
}]);
|
9139
9399
|
return Meeting;
|
9140
9400
|
}(_webexCore.StatelessWebexPlugin);
|