@webex/plugin-meetings 3.8.0-web-workers-keepalive.1 → 3.8.1-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +70 -6
- package/dist/breakouts/index.js.map +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 +4 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +22 -123
- 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 +30 -10
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +83 -12
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/selfUtils.js +432 -418
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +17 -17
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +94 -6
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/brbState.js +9 -2
- package/dist/meeting/brbState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +17 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +568 -328
- 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 +4 -4
- 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 +9 -1
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +19 -13
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +5 -1
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/index.js +76 -0
- 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 +45 -9
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +3 -0
- package/dist/member/types.js.map +1 -1
- package/dist/member/util.js +335 -356
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +137 -29
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +38 -0
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +36 -1
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +1 -0
- package/dist/metrics/constants.js.map +1 -1
- package/dist/reachability/clusterReachability.js +23 -31
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/index.js +42 -2
- package/dist/reachability/index.js.map +1 -1
- package/dist/reconnection-manager/index.js +2 -2
- package/dist/reconnection-manager/index.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 +2 -0
- package/dist/types/constants.d.ts +15 -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 +3 -3
- package/dist/types/locus-info/selfUtils.d.ts +216 -1
- package/dist/types/media/properties.d.ts +15 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +16 -0
- package/dist/types/meeting/index.d.ts +35 -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 +2 -1
- package/dist/types/meetings/index.d.ts +28 -0
- package/dist/types/member/index.d.ts +20 -6
- package/dist/types/member/types.d.ts +73 -14
- package/dist/types/member/util.d.ts +156 -1
- package/dist/types/members/collection.d.ts +6 -5
- package/dist/types/members/index.d.ts +32 -43
- package/dist/types/members/request.d.ts +26 -0
- package/dist/types/members/util.d.ts +27 -0
- package/dist/types/metrics/constants.d.ts +1 -0
- package/dist/types/reachability/clusterReachability.d.ts +2 -6
- package/dist/types/reachability/index.d.ts +8 -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 +24 -23
- package/src/breakouts/index.ts +69 -0
- package/src/common/errors/webex-errors.ts +8 -1
- package/src/config.ts +2 -0
- package/src/constants.ts +23 -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 +48 -12
- package/src/locus-info/index.ts +88 -13
- package/src/locus-info/selfUtils.ts +496 -442
- package/src/media/index.ts +23 -21
- package/src/media/properties.ts +96 -0
- package/src/meeting/brbState.ts +11 -2
- package/src/meeting/in-meeting-actions.ts +32 -0
- package/src/meeting/index.ts +356 -87
- package/src/meeting/locusMediaRequest.ts +0 -18
- package/src/meeting/muteState.ts +4 -4
- package/src/meeting/request.ts +36 -1
- package/src/meeting/request.type.ts +7 -0
- package/src/meeting/util.ts +9 -1
- package/src/meeting-info/meeting-info-v2.ts +7 -2
- package/src/meeting-info/utilv2.ts +5 -0
- package/src/meetings/index.ts +76 -0
- package/src/meetings/util.ts +18 -0
- package/src/member/index.ts +57 -22
- package/src/member/types.ts +82 -16
- package/src/member/util.ts +357 -353
- package/src/members/collection.ts +4 -3
- package/src/members/index.ts +137 -18
- package/src/members/request.ts +44 -0
- package/src/members/util.ts +43 -1
- package/src/metrics/constants.ts +1 -0
- package/src/reachability/clusterReachability.ts +26 -25
- package/src/reachability/index.ts +55 -1
- package/src/reconnection-manager/index.ts +2 -2
- 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/breakouts/index.ts +167 -95
- package/test/unit/spec/controls-options-manager/util.js +120 -0
- package/test/unit/spec/locus-info/controlsUtils.js +131 -9
- package/test/unit/spec/locus-info/index.js +195 -73
- package/test/unit/spec/locus-info/selfUtils.js +98 -24
- package/test/unit/spec/media/index.ts +150 -18
- package/test/unit/spec/media/properties.ts +130 -0
- package/test/unit/spec/meeting/brbState.ts +40 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +19 -4
- package/test/unit/spec/meeting/index.js +553 -36
- package/test/unit/spec/meeting/locusMediaRequest.ts +0 -30
- package/test/unit/spec/meeting/muteState.js +73 -2
- package/test/unit/spec/meeting/request.js +32 -1
- package/test/unit/spec/meeting/utils.js +79 -33
- package/test/unit/spec/meeting-info/meetinginfov2.js +41 -0
- package/test/unit/spec/meeting-info/utilv2.js +19 -0
- package/test/unit/spec/meetings/index.js +68 -1
- package/test/unit/spec/members/index.js +304 -78
- package/test/unit/spec/members/request.js +68 -22
- package/test/unit/spec/members/utils.js +75 -0
- package/test/unit/spec/reachability/clusterReachability.ts +41 -55
- package/test/unit/spec/reachability/index.ts +89 -0
- 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
@@ -507,6 +507,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
507
507
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "allowMediaInLobby", void 0);
|
508
508
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "localShareInstanceId", void 0);
|
509
509
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "remoteShareInstanceId", void 0);
|
510
|
+
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "shareCAEventSentStatus", void 0);
|
510
511
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "turnDiscoverySkippedReason", void 0);
|
511
512
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "turnServerUsed", void 0);
|
512
513
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "areVoiceaEventsSetup", false);
|
@@ -561,6 +562,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
561
562
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "rtcMetrics", void 0);
|
562
563
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "uploadLogsTimer", void 0);
|
563
564
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "logUploadIntervalIndex", void 0);
|
565
|
+
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "mediaServerIp", void 0);
|
564
566
|
/**
|
565
567
|
* Callback called when a relay event is received from meeting LLM Connection
|
566
568
|
* @param {RelayEvent} e Event object coming from LLM Connection
|
@@ -705,6 +707,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
705
707
|
*/
|
706
708
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "roapMessageReceived", function (roapMessage) {
|
707
709
|
var mediaServer = roapMessage.messageType === 'ANSWER' ? _util3.default.getMediaServer(roapMessage.sdp) : undefined;
|
710
|
+
var mediaServerIp = roapMessage.messageType === 'ANSWER' ? _util3.default.getMediaServerIp(roapMessage.sdp) : undefined;
|
708
711
|
if (_this.isMultistream && mediaServer && mediaServer !== 'homer') {
|
709
712
|
throw new _multistreamNotSupportedError.default("Client asked for multistream backend (Homer), but got ".concat(mediaServer, " instead"));
|
710
713
|
}
|
@@ -712,6 +715,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
712
715
|
if (mediaServer) {
|
713
716
|
_this.mediaProperties.webrtcMediaConnection.mediaServer = mediaServer;
|
714
717
|
}
|
718
|
+
if (_this.isMultistream && mediaServerIp) {
|
719
|
+
_this.mediaServerIp = mediaServerIp;
|
720
|
+
}
|
715
721
|
});
|
716
722
|
/**
|
717
723
|
* This function makes sure we send the right metrics when local and remote SDPs are processed/generated
|
@@ -1054,18 +1060,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1054
1060
|
* @memberof Meetings
|
1055
1061
|
*/
|
1056
1062
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "setupStatsAnalyzerEventHandlers", function () {
|
1057
|
-
_this.statsAnalyzer.on(_internalMediaCore.StatsAnalyzerEventNames.MEDIA_QUALITY, function (
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1061
|
-
|
1062
|
-
|
1063
|
-
|
1064
|
-
|
1065
|
-
|
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
|
+
}
|
1066
1073
|
|
1067
|
-
// Count members that are in the meeting
|
1068
|
-
|
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) {
|
1069
1077
|
return member.isInMeeting;
|
1070
1078
|
}).length;
|
1071
1079
|
|
@@ -1074,10 +1082,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1074
1082
|
name: 'client.mediaquality.event',
|
1075
1083
|
options: {
|
1076
1084
|
meetingId: _this.id,
|
1077
|
-
networkType:
|
1085
|
+
networkType: _this.statsAnalyzer.getNetworkType()
|
1078
1086
|
},
|
1079
1087
|
payload: {
|
1080
|
-
intervals: [
|
1088
|
+
intervals: [event.data]
|
1081
1089
|
}
|
1082
1090
|
});
|
1083
1091
|
});
|
@@ -1086,85 +1094,101 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1086
1094
|
file: 'meeting/index',
|
1087
1095
|
function: 'addMedia'
|
1088
1096
|
}, _constants.EVENT_TRIGGERS.MEETING_MEDIA_LOCAL_STARTED, data);
|
1089
|
-
|
1090
|
-
|
1091
|
-
|
1092
|
-
|
1093
|
-
|
1094
|
-
|
1095
|
-
|
1096
|
-
|
1097
|
-
|
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;
|
1098
1111
|
}
|
1099
|
-
}
|
1112
|
+
}
|
1100
1113
|
});
|
1101
1114
|
_this.statsAnalyzer.on(_internalMediaCore.StatsAnalyzerEventNames.LOCAL_MEDIA_STOPPED, function (data) {
|
1102
|
-
|
1103
|
-
|
1104
|
-
|
1105
|
-
|
1106
|
-
|
1107
|
-
|
1108
|
-
|
1109
|
-
|
1110
|
-
|
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;
|
1111
1129
|
}
|
1112
|
-
}
|
1130
|
+
}
|
1113
1131
|
});
|
1114
1132
|
_this.statsAnalyzer.on(_internalMediaCore.StatsAnalyzerEventNames.REMOTE_MEDIA_STARTED, function (data) {
|
1115
1133
|
_triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
|
1116
1134
|
file: 'meeting/index',
|
1117
1135
|
function: 'addMedia'
|
1118
1136
|
}, _constants.EVENT_TRIGGERS.MEETING_MEDIA_REMOTE_STARTED, data);
|
1119
|
-
|
1120
|
-
_this.webex.internal.newMetrics.submitClientEvent({
|
1121
|
-
name: 'client.media.rx.start',
|
1122
|
-
payload: {
|
1123
|
-
mediaType: data.mediaType,
|
1124
|
-
shareInstanceId: data.mediaType === 'share' ? _this.remoteShareInstanceId : undefined
|
1125
|
-
},
|
1126
|
-
options: {
|
1127
|
-
meetingId: _this.id
|
1128
|
-
}
|
1129
|
-
});
|
1130
|
-
if (data.mediaType === 'share') {
|
1137
|
+
if (data.mediaType !== 'share' || !_this.shareCAEventSentStatus.receiveStart) {
|
1131
1138
|
// @ts-ignore
|
1132
1139
|
_this.webex.internal.newMetrics.submitClientEvent({
|
1133
|
-
name: 'client.media.
|
1140
|
+
name: 'client.media.rx.start',
|
1134
1141
|
payload: {
|
1135
|
-
mediaType:
|
1136
|
-
shareInstanceId: _this.remoteShareInstanceId
|
1142
|
+
mediaType: data.mediaType,
|
1143
|
+
shareInstanceId: data.mediaType === 'share' ? _this.remoteShareInstanceId : undefined
|
1137
1144
|
},
|
1138
1145
|
options: {
|
1139
1146
|
meetingId: _this.id
|
1140
1147
|
}
|
1141
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
|
+
}
|
1142
1163
|
}
|
1143
1164
|
});
|
1144
1165
|
_this.statsAnalyzer.on(_internalMediaCore.StatsAnalyzerEventNames.REMOTE_MEDIA_STOPPED, function (data) {
|
1145
|
-
|
1146
|
-
_this.webex.internal.newMetrics.submitClientEvent({
|
1147
|
-
name: 'client.media.rx.stop',
|
1148
|
-
payload: {
|
1149
|
-
mediaType: data.mediaType,
|
1150
|
-
shareInstanceId: data.mediaType === 'share' ? _this.remoteShareInstanceId : undefined
|
1151
|
-
},
|
1152
|
-
options: {
|
1153
|
-
meetingId: _this.id
|
1154
|
-
}
|
1155
|
-
});
|
1156
|
-
if (data.mediaType === 'share') {
|
1166
|
+
if (data.mediaType !== 'share' || !_this.shareCAEventSentStatus.receiveStop) {
|
1157
1167
|
// @ts-ignore
|
1158
1168
|
_this.webex.internal.newMetrics.submitClientEvent({
|
1159
|
-
name: 'client.media.
|
1169
|
+
name: 'client.media.rx.stop',
|
1160
1170
|
payload: {
|
1161
|
-
mediaType:
|
1162
|
-
shareInstanceId: _this.remoteShareInstanceId
|
1171
|
+
mediaType: data.mediaType,
|
1172
|
+
shareInstanceId: data.mediaType === 'share' ? _this.remoteShareInstanceId : undefined
|
1163
1173
|
},
|
1164
1174
|
options: {
|
1165
1175
|
meetingId: _this.id
|
1166
1176
|
}
|
1167
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
|
+
}
|
1168
1192
|
}
|
1169
1193
|
});
|
1170
1194
|
});
|
@@ -2018,7 +2042,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
2018
2042
|
captions: [],
|
2019
2043
|
isListening: false,
|
2020
2044
|
commandText: '',
|
2021
|
-
languageOptions: {
|
2045
|
+
languageOptions: {
|
2046
|
+
currentSpokenLanguage: 'en'
|
2047
|
+
},
|
2022
2048
|
showCaptionBox: false,
|
2023
2049
|
transcribingRequestStatus: 'INACTIVE',
|
2024
2050
|
isCaptioning: false,
|
@@ -2106,6 +2132,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
2106
2132
|
*/
|
2107
2133
|
_this.remoteShareInstanceId = null;
|
2108
2134
|
|
2135
|
+
/**
|
2136
|
+
* Status used for ensuring we do not oversend metrics
|
2137
|
+
* @instance
|
2138
|
+
* @private
|
2139
|
+
* @memberof Meeting
|
2140
|
+
*/
|
2141
|
+
_this.shareCAEventSentStatus = {
|
2142
|
+
transmitStart: false,
|
2143
|
+
transmitStop: false,
|
2144
|
+
receiveStart: false,
|
2145
|
+
receiveStop: false
|
2146
|
+
};
|
2147
|
+
|
2109
2148
|
/**
|
2110
2149
|
* The class that helps to control recording functions: start, stop, pause, resume, etc
|
2111
2150
|
* @instance
|
@@ -2267,6 +2306,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
2267
2306
|
* @memberof Meeting
|
2268
2307
|
*/
|
2269
2308
|
(0, _classPrivateFieldSet2.default)((0, _assertThisInitialized2.default)(_this), _isoLocalClientMeetingJoinTime, undefined);
|
2309
|
+
|
2310
|
+
// We clear the error cache of CA events on every new meeting instance
|
2311
|
+
// @ts-ignore - Fix type
|
2312
|
+
_this.webex.internal.newMetrics.callDiagnosticMetrics.clearErrorCache();
|
2313
|
+
|
2314
|
+
/**
|
2315
|
+
* IP Address of the remote media server
|
2316
|
+
* @instance
|
2317
|
+
* @type {string}
|
2318
|
+
* @private
|
2319
|
+
* @memberof Meeting
|
2320
|
+
*/
|
2321
|
+
_this.mediaServerIp = undefined;
|
2270
2322
|
return _this;
|
2271
2323
|
}
|
2272
2324
|
|
@@ -3256,6 +3308,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3256
3308
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_PARTICIPANTS, function (payload) {
|
3257
3309
|
_this13.members.locusParticipantsUpdate(payload);
|
3258
3310
|
});
|
3311
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.PARTICIPANT_REASON_CHANGED, function (payload) {
|
3312
|
+
_triggerProxy.default.trigger(_this13, {
|
3313
|
+
file: 'meeting/index',
|
3314
|
+
function: 'setUpLocusParticipantsListener'
|
3315
|
+
}, _constants.EVENT_TRIGGERS.MEETING_PARTICIPANT_REASON_CHANGED, {
|
3316
|
+
payload: payload
|
3317
|
+
});
|
3318
|
+
});
|
3259
3319
|
}
|
3260
3320
|
|
3261
3321
|
/**
|
@@ -3342,8 +3402,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3342
3402
|
}
|
3343
3403
|
}
|
3344
3404
|
});
|
3345
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.
|
3346
|
-
var
|
3405
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_TRANSCRIPTION_SPOKEN_LANGUAGE_UPDATED, function (_ref12) {
|
3406
|
+
var spokenLanguage = _ref12.spokenLanguage;
|
3407
|
+
if (spokenLanguage) {
|
3408
|
+
_this14.transcription.languageOptions.currentSpokenLanguage = spokenLanguage;
|
3409
|
+
// @ts-ignore
|
3410
|
+
_this14.webex.internal.voicea.onSpokenLanguageUpdate(spokenLanguage);
|
3411
|
+
_triggerProxy.default.trigger(_this14, {
|
3412
|
+
file: 'meeting/index',
|
3413
|
+
function: 'setupLocusControlsListener'
|
3414
|
+
}, _constants.EVENT_TRIGGERS.MEETING_TRANSCRIPTION_SPOKEN_LANGUAGE_UPDATED, {
|
3415
|
+
spokenLanguage: spokenLanguage
|
3416
|
+
});
|
3417
|
+
}
|
3418
|
+
});
|
3419
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_MANUAL_CAPTION_UPDATED, function (_ref13) {
|
3420
|
+
var enable = _ref13.enable;
|
3347
3421
|
_triggerProxy.default.trigger(_this14, {
|
3348
3422
|
file: 'meeting/index',
|
3349
3423
|
function: 'setupLocusControlsListener'
|
@@ -3351,24 +3425,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3351
3425
|
enable: enable
|
3352
3426
|
});
|
3353
3427
|
});
|
3354
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_BREAKOUT_UPDATED, function (
|
3355
|
-
var breakout =
|
3428
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_BREAKOUT_UPDATED, function (_ref14) {
|
3429
|
+
var breakout = _ref14.breakout;
|
3356
3430
|
_this14.breakouts.updateBreakout(breakout);
|
3357
3431
|
_triggerProxy.default.trigger(_this14, {
|
3358
3432
|
file: 'meeting/index',
|
3359
3433
|
function: 'setupLocusControlsListener'
|
3360
3434
|
}, _constants.EVENT_TRIGGERS.MEETING_BREAKOUTS_UPDATE);
|
3361
3435
|
});
|
3362
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_INTERPRETATION_UPDATED, function (
|
3363
|
-
var interpretation =
|
3436
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_INTERPRETATION_UPDATED, function (_ref15) {
|
3437
|
+
var interpretation = _ref15.interpretation;
|
3364
3438
|
_this14.simultaneousInterpretation.updateInterpretation(interpretation);
|
3365
3439
|
_triggerProxy.default.trigger(_this14, {
|
3366
3440
|
file: 'meeting/index',
|
3367
3441
|
function: 'setupLocusControlsListener'
|
3368
3442
|
}, _constants.EVENT_TRIGGERS.MEETING_INTERPRETATION_UPDATE);
|
3369
3443
|
});
|
3370
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED, function (
|
3371
|
-
var entryExitTone =
|
3444
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED, function (_ref16) {
|
3445
|
+
var entryExitTone = _ref16.entryExitTone;
|
3372
3446
|
_triggerProxy.default.trigger(_this14, {
|
3373
3447
|
file: 'meeting/index',
|
3374
3448
|
function: 'setupLocusControlsListener'
|
@@ -3376,8 +3450,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3376
3450
|
entryExitTone: entryExitTone
|
3377
3451
|
});
|
3378
3452
|
});
|
3379
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MUTE_ON_ENTRY_CHANGED, function (
|
3380
|
-
var state =
|
3453
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MUTE_ON_ENTRY_CHANGED, function (_ref17) {
|
3454
|
+
var state = _ref17.state;
|
3381
3455
|
_triggerProxy.default.trigger(_this14, {
|
3382
3456
|
file: 'meeting/index',
|
3383
3457
|
function: 'setupLocusControlsListener'
|
@@ -3385,8 +3459,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3385
3459
|
state: state
|
3386
3460
|
});
|
3387
3461
|
});
|
3388
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_SHARE_CONTROL_CHANGED, function (
|
3389
|
-
var state =
|
3462
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_SHARE_CONTROL_CHANGED, function (_ref18) {
|
3463
|
+
var state = _ref18.state;
|
3390
3464
|
_triggerProxy.default.trigger(_this14, {
|
3391
3465
|
file: 'meeting/index',
|
3392
3466
|
function: 'setupLocusControlsListener'
|
@@ -3394,8 +3468,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3394
3468
|
state: state
|
3395
3469
|
});
|
3396
3470
|
});
|
3397
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_DISALLOW_UNMUTE_CHANGED, function (
|
3398
|
-
var state =
|
3471
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_DISALLOW_UNMUTE_CHANGED, function (_ref19) {
|
3472
|
+
var state = _ref19.state;
|
3399
3473
|
_triggerProxy.default.trigger(_this14, {
|
3400
3474
|
file: 'meeting/index',
|
3401
3475
|
function: 'setupLocusControlsListener'
|
@@ -3403,8 +3477,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3403
3477
|
state: state
|
3404
3478
|
});
|
3405
3479
|
});
|
3406
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_REACTIONS_CHANGED, function (
|
3407
|
-
var state =
|
3480
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_REACTIONS_CHANGED, function (_ref20) {
|
3481
|
+
var state = _ref20.state;
|
3408
3482
|
_triggerProxy.default.trigger(_this14, {
|
3409
3483
|
file: 'meeting/index',
|
3410
3484
|
function: 'setupLocusControlsListener'
|
@@ -3412,8 +3486,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3412
3486
|
state: state
|
3413
3487
|
});
|
3414
3488
|
});
|
3415
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED, function (
|
3416
|
-
var state =
|
3489
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED, function (_ref21) {
|
3490
|
+
var state = _ref21.state;
|
3417
3491
|
_triggerProxy.default.trigger(_this14, {
|
3418
3492
|
file: 'meeting/index',
|
3419
3493
|
function: 'setupLocusControlsListener'
|
@@ -3421,8 +3495,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3421
3495
|
state: state
|
3422
3496
|
});
|
3423
3497
|
});
|
3424
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_RAISE_HAND_CHANGED, function (
|
3425
|
-
var state =
|
3498
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_RAISE_HAND_CHANGED, function (_ref22) {
|
3499
|
+
var state = _ref22.state;
|
3426
3500
|
_triggerProxy.default.trigger(_this14, {
|
3427
3501
|
file: 'meeting/index',
|
3428
3502
|
function: 'setupLocusControlsListener'
|
@@ -3430,8 +3504,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3430
3504
|
state: state
|
3431
3505
|
});
|
3432
3506
|
});
|
3433
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_WEBCAST_CHANGED, function (
|
3434
|
-
var state =
|
3507
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_WEBCAST_CHANGED, function (_ref23) {
|
3508
|
+
var state = _ref23.state;
|
3435
3509
|
_triggerProxy.default.trigger(_this14, {
|
3436
3510
|
file: 'meeting/index',
|
3437
3511
|
function: 'setupLocusControlsListener'
|
@@ -3439,8 +3513,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3439
3513
|
state: state
|
3440
3514
|
});
|
3441
3515
|
});
|
3442
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_FULL_CHANGED, function (
|
3443
|
-
var state =
|
3516
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_FULL_CHANGED, function (_ref24) {
|
3517
|
+
var state = _ref24.state;
|
3444
3518
|
_triggerProxy.default.trigger(_this14, {
|
3445
3519
|
file: 'meeting/index',
|
3446
3520
|
function: 'setupLocusControlsListener'
|
@@ -3448,8 +3522,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3448
3522
|
state: state
|
3449
3523
|
});
|
3450
3524
|
});
|
3451
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_PRACTICE_SESSION_STATUS_UPDATED, function (
|
3452
|
-
var state =
|
3525
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_PRACTICE_SESSION_STATUS_UPDATED, function (_ref25) {
|
3526
|
+
var state = _ref25.state;
|
3453
3527
|
_this14.webinar.updatePracticeSessionStatus(state);
|
3454
3528
|
_triggerProxy.default.trigger(_this14, {
|
3455
3529
|
file: 'meeting/index',
|
@@ -3458,8 +3532,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3458
3532
|
state: state
|
3459
3533
|
});
|
3460
3534
|
});
|
3461
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_STAGE_VIEW_UPDATED, function (
|
3462
|
-
var state =
|
3535
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_STAGE_VIEW_UPDATED, function (_ref26) {
|
3536
|
+
var state = _ref26.state;
|
3463
3537
|
_triggerProxy.default.trigger(_this14, {
|
3464
3538
|
file: 'meeting/index',
|
3465
3539
|
function: 'setupLocusControlsListener'
|
@@ -3467,8 +3541,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3467
3541
|
state: state
|
3468
3542
|
});
|
3469
3543
|
});
|
3470
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIDEO_CHANGED, function (
|
3471
|
-
var state =
|
3544
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_VIDEO_CHANGED, function (_ref27) {
|
3545
|
+
var state = _ref27.state;
|
3472
3546
|
_triggerProxy.default.trigger(_this14, {
|
3473
3547
|
file: 'meeting/index',
|
3474
3548
|
function: 'setupLocusControlsListener'
|
@@ -3476,6 +3550,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3476
3550
|
state: state
|
3477
3551
|
});
|
3478
3552
|
});
|
3553
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_ANNOTATION_CHANGED, function (_ref28) {
|
3554
|
+
var state = _ref28.state;
|
3555
|
+
_triggerProxy.default.trigger(_this14, {
|
3556
|
+
file: 'meeting/index',
|
3557
|
+
function: 'setupLocusControlsListener'
|
3558
|
+
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_ANNOTATION_UPDATED, {
|
3559
|
+
state: state
|
3560
|
+
});
|
3561
|
+
});
|
3562
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_REMOTE_DESKTOP_CONTROL_CHANGED, function (_ref29) {
|
3563
|
+
var state = _ref29.state;
|
3564
|
+
_triggerProxy.default.trigger(_this14, {
|
3565
|
+
file: 'meeting/index',
|
3566
|
+
function: 'setupLocusControlsListener'
|
3567
|
+
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_REMOTE_DESKTOP_CONTROL_UPDATED, {
|
3568
|
+
state: state
|
3569
|
+
});
|
3570
|
+
});
|
3479
3571
|
}
|
3480
3572
|
|
3481
3573
|
/**
|
@@ -3515,7 +3607,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3515
3607
|
var _this15 = this;
|
3516
3608
|
// Will get triggered on local and remote share
|
3517
3609
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_MEDIA_SHARES, /*#__PURE__*/function () {
|
3518
|
-
var
|
3610
|
+
var _ref30 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(payload) {
|
3519
3611
|
var _payload$previous, _payload$previous2;
|
3520
3612
|
var _payload$current, contentShare, whiteboardShare, previousContentShare, previousWhiteboardShare, newShareStatus, _this15$locusInfo, _this15$locusInfo$inf, _this15$webinar, oldShareStatus, sendStartedSharingRemote, _this15$mediaProperti;
|
3521
3613
|
return _regenerator.default.wrap(function _callee8$(_context8) {
|
@@ -3601,6 +3693,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3601
3693
|
case 26:
|
3602
3694
|
sendStartedSharingRemote = function sendStartedSharingRemote() {
|
3603
3695
|
_this15.remoteShareInstanceId = contentShare.shareInstanceId;
|
3696
|
+
_this15.shareCAEventSentStatus.receiveStart = false;
|
3697
|
+
_this15.shareCAEventSentStatus.receiveStop = false;
|
3604
3698
|
_triggerProxy.default.trigger(_this15, {
|
3605
3699
|
file: 'meetings/index',
|
3606
3700
|
function: 'remoteShare'
|
@@ -3674,6 +3768,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3674
3768
|
// if we got here, then some remote participant has stolen
|
3675
3769
|
// the presentation from another remote participant
|
3676
3770
|
_this15.remoteShareInstanceId = contentShare.shareInstanceId;
|
3771
|
+
_this15.shareCAEventSentStatus.receiveStart = false;
|
3772
|
+
_this15.shareCAEventSentStatus.receiveStop = false;
|
3677
3773
|
_triggerProxy.default.trigger(_this15, {
|
3678
3774
|
file: 'meetings/index',
|
3679
3775
|
function: 'remoteShare'
|
@@ -3714,7 +3810,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3714
3810
|
}, _callee8, null, [[27,, 31, 34]]);
|
3715
3811
|
}));
|
3716
3812
|
return function (_x8) {
|
3717
|
-
return
|
3813
|
+
return _ref30.apply(this, arguments);
|
3718
3814
|
};
|
3719
3815
|
}());
|
3720
3816
|
}
|
@@ -3828,8 +3924,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3828
3924
|
});
|
3829
3925
|
}
|
3830
3926
|
});
|
3831
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, function (
|
3832
|
-
var isInitializing =
|
3927
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, function (_ref31) {
|
3928
|
+
var isInitializing = _ref31.isInitializing;
|
3833
3929
|
_this19.updateMeetingActions();
|
3834
3930
|
_this19.recordingController.setDisplayHints(_this19.userDisplayHints);
|
3835
3931
|
_this19.recordingController.setUserPolicy(_this19.selfUserPolicies);
|
@@ -3967,7 +4063,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3967
4063
|
_this21.updateLLMConnection();
|
3968
4064
|
});
|
3969
4065
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ADMITTED_GUEST, /*#__PURE__*/function () {
|
3970
|
-
var
|
4066
|
+
var _ref32 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(payload) {
|
3971
4067
|
var _this21$rtcMetrics;
|
3972
4068
|
return _regenerator.default.wrap(function _callee9$(_context9) {
|
3973
4069
|
while (1) switch (_context9.prev = _context9.next) {
|
@@ -4001,7 +4097,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4001
4097
|
}, _callee9);
|
4002
4098
|
}));
|
4003
4099
|
return function (_x9) {
|
4004
|
-
return
|
4100
|
+
return _ref32.apply(this, arguments);
|
4005
4101
|
};
|
4006
4102
|
}());
|
4007
4103
|
|
@@ -4120,7 +4216,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4120
4216
|
}
|
4121
4217
|
});
|
4122
4218
|
this.locusInfo.on(_constants.EVENTS.DESTROY_MEETING, /*#__PURE__*/function () {
|
4123
|
-
var
|
4219
|
+
var _ref33 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(payload) {
|
4124
4220
|
return _regenerator.default.wrap(function _callee10$(_context10) {
|
4125
4221
|
while (1) switch (_context10.prev = _context10.next) {
|
4126
4222
|
case 0:
|
@@ -4180,7 +4276,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4180
4276
|
}, _callee10, null, [[8, 14]]);
|
4181
4277
|
}));
|
4182
4278
|
return function (_x10) {
|
4183
|
-
return
|
4279
|
+
return _ref33.apply(this, arguments);
|
4184
4280
|
};
|
4185
4281
|
}());
|
4186
4282
|
}
|
@@ -4239,6 +4335,20 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4239
4335
|
return this.members.cancelPhoneInvite(invitee);
|
4240
4336
|
}
|
4241
4337
|
|
4338
|
+
/**
|
4339
|
+
* Cancel an SIP call invitation made during a meeting
|
4340
|
+
* @param {Object} invitee
|
4341
|
+
* @param {String} invitee.memberId
|
4342
|
+
* @returns {Promise} see #members.cancelSIPInvite
|
4343
|
+
* @public
|
4344
|
+
* @memberof Meeting
|
4345
|
+
*/
|
4346
|
+
}, {
|
4347
|
+
key: "cancelSIPInvite",
|
4348
|
+
value: function cancelSIPInvite(invitee) {
|
4349
|
+
return this.members.cancelSIPInvite(invitee);
|
4350
|
+
}
|
4351
|
+
|
4242
4352
|
/**
|
4243
4353
|
* Admit the guest(s) to the call once they are waiting.
|
4244
4354
|
* If the host/cohost is in a breakout session, the locus url
|
@@ -4282,6 +4392,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4282
4392
|
key: "beRightBack",
|
4283
4393
|
value: (function () {
|
4284
4394
|
var _beRightBack = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(enabled) {
|
4395
|
+
var _this24 = this;
|
4285
4396
|
var errorMessage, error, _errorMessage, _error;
|
4286
4397
|
return _regenerator.default.wrap(function _callee11$(_context11) {
|
4287
4398
|
while (1) switch (_context11.prev = _context11.next) {
|
@@ -4304,7 +4415,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4304
4415
|
_loggerProxy.default.logger.error(_error);
|
4305
4416
|
return _context11.abrupt("return", _promise.default.reject(_error));
|
4306
4417
|
case 10:
|
4307
|
-
return _context11.abrupt("return", this.brbState.enable(enabled, this.sendSlotManager))
|
4418
|
+
return _context11.abrupt("return", this.brbState.enable(enabled, this.sendSlotManager).then(function () {
|
4419
|
+
if (_this24.audio && enabled) {
|
4420
|
+
// locus mutes the participant with brb enabled request,
|
4421
|
+
// so we need to explicitly update remote mute for correct logic flow
|
4422
|
+
_this24.audio.handleServerRemoteMuteUpdate(_this24, enabled);
|
4423
|
+
}
|
4424
|
+
}).catch(function (error) {
|
4425
|
+
return _promise.default.reject(error);
|
4426
|
+
}));
|
4308
4427
|
case 11:
|
4309
4428
|
case "end":
|
4310
4429
|
return _context11.stop();
|
@@ -4490,7 +4609,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4490
4609
|
canAdmitParticipant: _util2.default.canAdmitParticipant(this.userDisplayHints),
|
4491
4610
|
canLock: _util2.default.canUserLock(this.userDisplayHints),
|
4492
4611
|
canUnlock: _util2.default.canUserUnlock(this.userDisplayHints),
|
4493
|
-
canShareWhiteBoard: _util2.default.canShareWhiteBoard(this.userDisplayHints),
|
4612
|
+
canShareWhiteBoard: _util2.default.canShareWhiteBoard(this.userDisplayHints, this.selfUserPolicies),
|
4494
4613
|
canSetDisallowUnmute: _util5.default.canSetDisallowUnmute(this.userDisplayHints),
|
4495
4614
|
canUnsetDisallowUnmute: _util5.default.canUnsetDisallowUnmute(this.userDisplayHints),
|
4496
4615
|
canSetMuteOnEntry: _util5.default.canSetMuteOnEntry(this.userDisplayHints),
|
@@ -4520,6 +4639,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4520
4639
|
canSelectSpokenLanguages: _util2.default.canSelectSpokenLanguages(this.userDisplayHints),
|
4521
4640
|
waitingForOthersToJoin: _util2.default.waitingForOthersToJoin(this.userDisplayHints),
|
4522
4641
|
canSendReactions: _util2.default.canSendReactions(this.inMeetingActions.canSendReactions, this.userDisplayHints),
|
4642
|
+
requiresPostMeetingDataConsentPrompt: _util2.default.requiresPostMeetingDataConsentPrompt(this.userDisplayHints),
|
4523
4643
|
canManageBreakout: _util2.default.canManageBreakout(this.userDisplayHints),
|
4524
4644
|
canStartBreakout: _util2.default.canStartBreakout(this.userDisplayHints),
|
4525
4645
|
canBroadcastMessageToBreakout: _util2.default.canBroadcastMessageToBreakout(this.userDisplayHints, this.selfUserPolicies),
|
@@ -4528,6 +4648,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4528
4648
|
canUserAskForHelp: _util2.default.canUserAskForHelp(this.userDisplayHints),
|
4529
4649
|
canUserRenameSelfAndObserved: _util2.default.canUserRenameSelfAndObserved(this.userDisplayHints),
|
4530
4650
|
canUserRenameOthers: _util2.default.canUserRenameOthers(this.userDisplayHints),
|
4651
|
+
canMoveToLobby: _util2.default.canMoveToLobby(this.userDisplayHints),
|
4531
4652
|
canMuteAll: _util5.default.hasHints({
|
4532
4653
|
requiredHints: [_constants.DISPLAY_HINTS.MUTE_ALL],
|
4533
4654
|
displayHints: this.userDisplayHints
|
@@ -4659,6 +4780,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4659
4780
|
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_FILE_TRANSFER],
|
4660
4781
|
policies: this.selfUserPolicies
|
4661
4782
|
}),
|
4783
|
+
canRealtimeCloseCaption: _util5.default.hasPolicies({
|
4784
|
+
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_REALTIME_CLOSE_CAPTION],
|
4785
|
+
policies: this.selfUserPolicies
|
4786
|
+
}),
|
4787
|
+
canRealtimeCloseCaptionManual: _util5.default.hasPolicies({
|
4788
|
+
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_REALTIME_CLOSE_CAPTION_MANUAL],
|
4789
|
+
policies: this.selfUserPolicies
|
4790
|
+
}),
|
4662
4791
|
canChat: _util5.default.hasPolicies({
|
4663
4792
|
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_CHAT],
|
4664
4793
|
policies: this.selfUserPolicies
|
@@ -4695,6 +4824,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4695
4824
|
canAnnotate: _util5.default.hasPolicies({
|
4696
4825
|
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_ANNOTATION],
|
4697
4826
|
policies: this.selfUserPolicies
|
4827
|
+
}),
|
4828
|
+
canEnableAnnotation: _util5.default.hasHints({
|
4829
|
+
requiredHints: [_constants.DISPLAY_HINTS.ENABLE_ANNOTATION_MEETING_OPTION],
|
4830
|
+
displayHints: this.userDisplayHints
|
4831
|
+
}),
|
4832
|
+
canDisableAnnotation: _util5.default.hasHints({
|
4833
|
+
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_ANNOTATION_MEETING_OPTION],
|
4834
|
+
displayHints: this.userDisplayHints
|
4835
|
+
}),
|
4836
|
+
canEnableRemoteDesktopControl: _util5.default.hasHints({
|
4837
|
+
requiredHints: [_constants.DISPLAY_HINTS.ENABLE_RDC_MEETING_OPTION],
|
4838
|
+
displayHints: this.userDisplayHints
|
4839
|
+
}),
|
4840
|
+
canDisableRemoteDesktopControl: _util5.default.hasHints({
|
4841
|
+
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_RDC_MEETING_OPTION],
|
4842
|
+
displayHints: this.userDisplayHints
|
4698
4843
|
})
|
4699
4844
|
}) || changed;
|
4700
4845
|
}
|
@@ -4799,7 +4944,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4799
4944
|
}, {
|
4800
4945
|
key: "setLogUploadTimer",
|
4801
4946
|
value: function setLogUploadTimer() {
|
4802
|
-
var
|
4947
|
+
var _this25 = this;
|
4803
4948
|
// 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
|
4804
4949
|
var LOG_UPLOAD_INTERVALS = [0.1, 15, 30, 60]; // in minutes
|
4805
4950
|
|
@@ -4810,15 +4955,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4810
4955
|
this.logUploadIntervalIndex += 1;
|
4811
4956
|
}
|
4812
4957
|
this.uploadLogsTimer = (0, _commonTimers.safeSetTimeout)(function () {
|
4813
|
-
|
4814
|
-
|
4958
|
+
_this25.uploadLogsTimer = undefined;
|
4959
|
+
_this25.uploadLogs();
|
4815
4960
|
|
4816
4961
|
// just as an extra precaution, to avoid uploading logs forever in case something goes wrong
|
4817
4962
|
// and the page remains opened, we stop it if there is no media connection
|
4818
|
-
if (!
|
4963
|
+
if (!_this25.mediaProperties.webrtcMediaConnection) {
|
4819
4964
|
return;
|
4820
4965
|
}
|
4821
|
-
|
4966
|
+
_this25.setLogUploadTimer();
|
4822
4967
|
}, delay);
|
4823
4968
|
}
|
4824
4969
|
|
@@ -4885,7 +5030,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4885
5030
|
}, {
|
4886
5031
|
key: "closeRemoteStreams",
|
4887
5032
|
value: function closeRemoteStreams() {
|
4888
|
-
var
|
5033
|
+
var _this26 = this;
|
4889
5034
|
var _this$mediaProperties6 = this.mediaProperties,
|
4890
5035
|
remoteAudioStream = _this$mediaProperties6.remoteAudioStream,
|
4891
5036
|
remoteVideoStream = _this$mediaProperties6.remoteVideoStream,
|
@@ -4899,7 +5044,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4899
5044
|
*/
|
4900
5045
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
4901
5046
|
var triggerMediaStoppedEvent = function triggerMediaStoppedEvent(mediaType) {
|
4902
|
-
_triggerProxy.default.trigger(
|
5047
|
+
_triggerProxy.default.trigger(_this26, {
|
4903
5048
|
file: 'meeting/index',
|
4904
5049
|
function: 'closeRemoteStreams'
|
4905
5050
|
}, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
|
@@ -5207,7 +5352,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5207
5352
|
}, {
|
5208
5353
|
key: "setMercuryListener",
|
5209
5354
|
value: function setMercuryListener() {
|
5210
|
-
var
|
5355
|
+
var _this27 = this;
|
5211
5356
|
// Client will have a socket manager and handle reconnecting to mercury, when we reconnect to mercury
|
5212
5357
|
// if the meeting has active peer connections, it should try to reconnect.
|
5213
5358
|
// @ts-ignore
|
@@ -5215,33 +5360,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5215
5360
|
_loggerProxy.default.logger.info('Meeting:index#setMercuryListener --> Web socket online');
|
5216
5361
|
|
5217
5362
|
// Only send restore event when it was disconnected before and for connected later
|
5218
|
-
if (!
|
5363
|
+
if (!_this27.hasWebsocketConnected) {
|
5219
5364
|
// @ts-ignore
|
5220
|
-
|
5365
|
+
_this27.webex.internal.newMetrics.submitClientEvent({
|
5221
5366
|
name: 'client.mercury.connection.restored',
|
5222
5367
|
options: {
|
5223
|
-
meetingId:
|
5368
|
+
meetingId: _this27.id
|
5224
5369
|
}
|
5225
5370
|
});
|
5226
5371
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_RESTORED, {
|
5227
|
-
correlation_id:
|
5372
|
+
correlation_id: _this27.correlationId
|
5228
5373
|
});
|
5229
5374
|
}
|
5230
|
-
|
5375
|
+
_this27.hasWebsocketConnected = true;
|
5231
5376
|
});
|
5232
5377
|
|
5233
5378
|
// @ts-ignore
|
5234
5379
|
this.webex.internal.mercury.on(_constants.OFFLINE, function () {
|
5235
5380
|
_loggerProxy.default.logger.error('Meeting:index#setMercuryListener --> Web socket offline');
|
5236
5381
|
// @ts-ignore
|
5237
|
-
|
5382
|
+
_this27.webex.internal.newMetrics.submitClientEvent({
|
5238
5383
|
name: 'client.mercury.connection.lost',
|
5239
5384
|
options: {
|
5240
|
-
meetingId:
|
5385
|
+
meetingId: _this27.id
|
5241
5386
|
}
|
5242
5387
|
});
|
5243
5388
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_FAILURE, {
|
5244
|
-
correlation_id:
|
5389
|
+
correlation_id: _this27.correlationId
|
5245
5390
|
});
|
5246
5391
|
});
|
5247
5392
|
}
|
@@ -5348,7 +5493,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5348
5493
|
}, {
|
5349
5494
|
key: "muteAudio",
|
5350
5495
|
value: function muteAudio() {
|
5351
|
-
var
|
5496
|
+
var _this28 = this;
|
5352
5497
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5353
5498
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5354
5499
|
}
|
@@ -5364,22 +5509,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5364
5509
|
|
5365
5510
|
// First, stop sending the local audio media
|
5366
5511
|
return logRequest(this.audio.handleClientRequest(this, true).then(function () {
|
5367
|
-
_util2.default.handleAudioLogging(
|
5512
|
+
_util2.default.handleAudioLogging(_this28.mediaProperties.audioStream);
|
5368
5513
|
// @ts-ignore
|
5369
|
-
|
5514
|
+
_this28.webex.internal.newMetrics.submitClientEvent({
|
5370
5515
|
name: 'client.muted',
|
5371
5516
|
payload: {
|
5372
5517
|
trigger: 'user-interaction',
|
5373
5518
|
mediaType: 'audio'
|
5374
5519
|
},
|
5375
5520
|
options: {
|
5376
|
-
meetingId:
|
5521
|
+
meetingId: _this28.id
|
5377
5522
|
}
|
5378
5523
|
});
|
5379
5524
|
}).catch(function (error) {
|
5380
5525
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_AUDIO_FAILURE, {
|
5381
|
-
correlation_id:
|
5382
|
-
locus_id:
|
5526
|
+
correlation_id: _this28.correlationId,
|
5527
|
+
locus_id: _this28.locusUrl.split('/').pop(),
|
5383
5528
|
reason: error.message,
|
5384
5529
|
stack: error.stack
|
5385
5530
|
});
|
@@ -5398,7 +5543,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5398
5543
|
}, {
|
5399
5544
|
key: "unmuteAudio",
|
5400
5545
|
value: function unmuteAudio() {
|
5401
|
-
var
|
5546
|
+
var _this29 = this;
|
5402
5547
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5403
5548
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5404
5549
|
}
|
@@ -5414,22 +5559,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5414
5559
|
|
5415
5560
|
// First, send the control to unmute the participant on the server
|
5416
5561
|
return logRequest(this.audio.handleClientRequest(this, false).then(function () {
|
5417
|
-
_util2.default.handleAudioLogging(
|
5562
|
+
_util2.default.handleAudioLogging(_this29.mediaProperties.audioStream);
|
5418
5563
|
// @ts-ignore
|
5419
|
-
|
5564
|
+
_this29.webex.internal.newMetrics.submitClientEvent({
|
5420
5565
|
name: 'client.unmuted',
|
5421
5566
|
payload: {
|
5422
5567
|
trigger: 'user-interaction',
|
5423
5568
|
mediaType: 'audio'
|
5424
5569
|
},
|
5425
5570
|
options: {
|
5426
|
-
meetingId:
|
5571
|
+
meetingId: _this29.id
|
5427
5572
|
}
|
5428
5573
|
});
|
5429
5574
|
}).catch(function (error) {
|
5430
5575
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_AUDIO_FAILURE, {
|
5431
|
-
correlation_id:
|
5432
|
-
locus_id:
|
5576
|
+
correlation_id: _this29.correlationId,
|
5577
|
+
locus_id: _this29.locusUrl.split('/').pop(),
|
5433
5578
|
reason: error.message,
|
5434
5579
|
stack: error.stack
|
5435
5580
|
});
|
@@ -5448,7 +5593,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5448
5593
|
}, {
|
5449
5594
|
key: "muteVideo",
|
5450
5595
|
value: function muteVideo() {
|
5451
|
-
var
|
5596
|
+
var _this30 = this;
|
5452
5597
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5453
5598
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5454
5599
|
}
|
@@ -5462,22 +5607,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5462
5607
|
return _promise.default.reject(new _parameter.default('no video control associated to the meeting'));
|
5463
5608
|
}
|
5464
5609
|
return logRequest(this.video.handleClientRequest(this, true).then(function () {
|
5465
|
-
_util2.default.handleVideoLogging(
|
5610
|
+
_util2.default.handleVideoLogging(_this30.mediaProperties.videoStream);
|
5466
5611
|
// @ts-ignore
|
5467
|
-
|
5612
|
+
_this30.webex.internal.newMetrics.submitClientEvent({
|
5468
5613
|
name: 'client.muted',
|
5469
5614
|
payload: {
|
5470
5615
|
trigger: 'user-interaction',
|
5471
5616
|
mediaType: 'video'
|
5472
5617
|
},
|
5473
5618
|
options: {
|
5474
|
-
meetingId:
|
5619
|
+
meetingId: _this30.id
|
5475
5620
|
}
|
5476
5621
|
});
|
5477
5622
|
}).catch(function (error) {
|
5478
5623
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_VIDEO_FAILURE, {
|
5479
|
-
correlation_id:
|
5480
|
-
locus_id:
|
5624
|
+
correlation_id: _this30.correlationId,
|
5625
|
+
locus_id: _this30.locusUrl.split('/').pop(),
|
5481
5626
|
reason: error.message,
|
5482
5627
|
stack: error.stack
|
5483
5628
|
});
|
@@ -5496,7 +5641,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5496
5641
|
}, {
|
5497
5642
|
key: "unmuteVideo",
|
5498
5643
|
value: function unmuteVideo() {
|
5499
|
-
var
|
5644
|
+
var _this31 = this;
|
5500
5645
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5501
5646
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5502
5647
|
}
|
@@ -5510,22 +5655,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5510
5655
|
return _promise.default.reject(new _parameter.default('no audio control associated to the meeting'));
|
5511
5656
|
}
|
5512
5657
|
return logRequest(this.video.handleClientRequest(this, false).then(function () {
|
5513
|
-
_util2.default.handleVideoLogging(
|
5658
|
+
_util2.default.handleVideoLogging(_this31.mediaProperties.videoStream);
|
5514
5659
|
// @ts-ignore
|
5515
|
-
|
5660
|
+
_this31.webex.internal.newMetrics.submitClientEvent({
|
5516
5661
|
name: 'client.unmuted',
|
5517
5662
|
payload: {
|
5518
5663
|
trigger: 'user-interaction',
|
5519
5664
|
mediaType: 'video'
|
5520
5665
|
},
|
5521
5666
|
options: {
|
5522
|
-
meetingId:
|
5667
|
+
meetingId: _this31.id
|
5523
5668
|
}
|
5524
5669
|
});
|
5525
5670
|
}).catch(function (error) {
|
5526
5671
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_VIDEO_FAILURE, {
|
5527
|
-
correlation_id:
|
5528
|
-
locus_id:
|
5672
|
+
correlation_id: _this31.correlationId,
|
5673
|
+
locus_id: _this31.locusUrl.split('/').pop(),
|
5529
5674
|
reason: error.message,
|
5530
5675
|
stack: error.stack
|
5531
5676
|
});
|
@@ -5555,7 +5700,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5555
5700
|
key: "joinWithMedia",
|
5556
5701
|
value: (function () {
|
5557
5702
|
var _joinWithMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
|
5558
|
-
var
|
5703
|
+
var _this32 = this;
|
5559
5704
|
var options,
|
5560
5705
|
mediaOptions,
|
5561
5706
|
_options$joinOptions,
|
@@ -5638,7 +5783,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5638
5783
|
case 35:
|
5639
5784
|
_context16.next = 37;
|
5640
5785
|
return this.addMediaInternal(function () {
|
5641
|
-
return
|
5786
|
+
return _this32.joinWithMediaRetryInfo.isRetry ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
5642
5787
|
}, turnServerInfo, forceTurnDiscovery, mediaOptions);
|
5643
5788
|
case 37:
|
5644
5789
|
mediaResponse = _context16.sent;
|
@@ -5733,7 +5878,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5733
5878
|
}, {
|
5734
5879
|
key: "reconnect",
|
5735
5880
|
value: function reconnect(options) {
|
5736
|
-
var
|
5881
|
+
var _this33 = this;
|
5737
5882
|
_loggerProxy.default.logger.log("Meeting:index#reconnect --> attempting to reconnect meeting ".concat(this.id));
|
5738
5883
|
if (!this.reconnectionManager || !this.reconnectionManager.reconnect) {
|
5739
5884
|
return _promise.default.reject(new _parameter.default('Cannot reconnect, ReconnectionManager must first be defined.'));
|
@@ -5749,10 +5894,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5749
5894
|
while (1) switch (_context17.prev = _context17.next) {
|
5750
5895
|
case 0:
|
5751
5896
|
_context17.next = 2;
|
5752
|
-
return
|
5897
|
+
return _this33.waitForRemoteSDPAnswer();
|
5753
5898
|
case 2:
|
5754
5899
|
_context17.next = 4;
|
5755
|
-
return
|
5900
|
+
return _this33.waitForMediaConnectionConnected();
|
5756
5901
|
case 4:
|
5757
5902
|
case "end":
|
5758
5903
|
return _context17.stop();
|
@@ -5766,7 +5911,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5766
5911
|
return _promise.default.resolve();
|
5767
5912
|
}
|
5768
5913
|
_loggerProxy.default.logger.error('Meeting:index#reconnect --> Meeting reconnect failed', error);
|
5769
|
-
|
5914
|
+
_this33.uploadLogs({
|
5770
5915
|
file: 'meeting/index',
|
5771
5916
|
function: 'reconnect'
|
5772
5917
|
});
|
@@ -5813,19 +5958,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5813
5958
|
}, {
|
5814
5959
|
key: "setCaptionLanguage",
|
5815
5960
|
value: function setCaptionLanguage(language) {
|
5816
|
-
var
|
5961
|
+
var _this34 = this;
|
5817
5962
|
return new _promise.default(function (resolve, reject) {
|
5818
|
-
if (!
|
5963
|
+
if (!_this34.isTranscriptionSupported()) {
|
5819
5964
|
_loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
|
5820
5965
|
reject(new Error('Webex Assistant is not enabled/supported'));
|
5821
5966
|
}
|
5822
5967
|
try {
|
5823
5968
|
var voiceaListenerCaptionUpdate = function voiceaListenerCaptionUpdate(payload) {
|
5824
5969
|
// @ts-ignore
|
5825
|
-
|
5970
|
+
_this34.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
|
5826
5971
|
var statusCode = payload.statusCode;
|
5827
5972
|
if (statusCode === 200) {
|
5828
|
-
|
5973
|
+
_this34.transcription.languageOptions = _objectSpread(_objectSpread({}, _this34.transcription.languageOptions), {}, {
|
5829
5974
|
currentCaptionLanguage: language
|
5830
5975
|
});
|
5831
5976
|
resolve(language);
|
@@ -5834,9 +5979,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5834
5979
|
}
|
5835
5980
|
};
|
5836
5981
|
// @ts-ignore
|
5837
|
-
|
5982
|
+
_this34.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
|
5838
5983
|
// @ts-ignore
|
5839
|
-
|
5984
|
+
_this34.webex.internal.voicea.requestLanguage(language);
|
5840
5985
|
} catch (error) {
|
5841
5986
|
_loggerProxy.default.logger.error("Meeting:index#setCaptionLanguage --> ".concat(error));
|
5842
5987
|
reject(error);
|
@@ -5852,23 +5997,23 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5852
5997
|
}, {
|
5853
5998
|
key: "setSpokenLanguage",
|
5854
5999
|
value: function setSpokenLanguage(language) {
|
5855
|
-
var
|
6000
|
+
var _this35 = this;
|
5856
6001
|
return new _promise.default(function (resolve, reject) {
|
5857
|
-
if (!
|
6002
|
+
if (!_this35.isTranscriptionSupported()) {
|
5858
6003
|
_loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
|
5859
6004
|
reject(new Error('Webex Assistant is not enabled/supported'));
|
5860
6005
|
}
|
5861
|
-
if (
|
6006
|
+
if (_this35.getCurUserType() !== 'host') {
|
5862
6007
|
_loggerProxy.default.logger.error('Meeting:index#setSpokenLanguage --> Only host can set spoken language');
|
5863
6008
|
reject(new Error('Only host can set spoken language'));
|
5864
6009
|
}
|
5865
6010
|
try {
|
5866
6011
|
var voiceaListenerLanguageUpdate = function voiceaListenerLanguageUpdate(payload) {
|
5867
6012
|
// @ts-ignore
|
5868
|
-
|
6013
|
+
_this35.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
|
5869
6014
|
var languageCode = payload.languageCode;
|
5870
6015
|
if (languageCode) {
|
5871
|
-
|
6016
|
+
_this35.transcription.languageOptions = _objectSpread(_objectSpread({}, _this35.transcription.languageOptions), {}, {
|
5872
6017
|
currentSpokenLanguage: languageCode
|
5873
6018
|
});
|
5874
6019
|
resolve(languageCode);
|
@@ -5878,10 +6023,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5878
6023
|
};
|
5879
6024
|
|
5880
6025
|
// @ts-ignore
|
5881
|
-
|
6026
|
+
_this35.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
|
5882
6027
|
|
5883
6028
|
// @ts-ignore
|
5884
|
-
|
6029
|
+
_this35.webex.internal.voicea.setSpokenLanguage(language);
|
5885
6030
|
} catch (error) {
|
5886
6031
|
_loggerProxy.default.logger.error("Meeting:index#setSpokenLanguage --> ".concat(error));
|
5887
6032
|
reject(error);
|
@@ -6004,7 +6149,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6004
6149
|
*/
|
6005
6150
|
function () {
|
6006
6151
|
var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
|
6007
|
-
var
|
6152
|
+
var _this36 = this;
|
6008
6153
|
var options,
|
6009
6154
|
errorMessage,
|
6010
6155
|
error,
|
@@ -6153,61 +6298,61 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6153
6298
|
return _context19.abrupt("return", _promise.default.reject(_context19.t0));
|
6154
6299
|
case 51:
|
6155
6300
|
return _context19.abrupt("return", _util2.default.joinMeetingOptions(this, options).then(function (join) {
|
6156
|
-
|
6157
|
-
|
6301
|
+
_this36.meetingFiniteStateMachine.join();
|
6302
|
+
_this36.setupLocusMediaRequest();
|
6158
6303
|
|
6159
6304
|
// @ts-ignore
|
6160
|
-
|
6305
|
+
_this36.webex.internal.device.meetingStarted();
|
6161
6306
|
_loggerProxy.default.logger.log('Meeting:index#join --> Success');
|
6162
6307
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
|
6163
|
-
correlation_id:
|
6308
|
+
correlation_id: _this36.correlationId
|
6164
6309
|
});
|
6165
6310
|
joinSuccess(join);
|
6166
|
-
|
6311
|
+
_this36.deferJoin = undefined;
|
6167
6312
|
return join;
|
6168
6313
|
}).catch(function (error) {
|
6169
|
-
var
|
6170
|
-
|
6314
|
+
var _this36$meetingInfo, _error$error;
|
6315
|
+
_this36.meetingFiniteStateMachine.fail(error);
|
6171
6316
|
_loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
|
6172
6317
|
|
6173
6318
|
// @ts-ignore
|
6174
|
-
|
6319
|
+
_this36.webex.internal.newMetrics.submitClientEvent({
|
6175
6320
|
name: 'client.locus.join.response',
|
6176
6321
|
payload: {
|
6177
6322
|
identifiers: {
|
6178
|
-
meetingLookupUrl: (
|
6323
|
+
meetingLookupUrl: (_this36$meetingInfo = _this36.meetingInfo) === null || _this36$meetingInfo === void 0 ? void 0 : _this36$meetingInfo.meetingLookupUrl
|
6179
6324
|
}
|
6180
6325
|
},
|
6181
6326
|
options: {
|
6182
|
-
meetingId:
|
6327
|
+
meetingId: _this36.id,
|
6183
6328
|
rawError: error
|
6184
6329
|
}
|
6185
6330
|
});
|
6186
6331
|
|
6187
6332
|
// TODO: change this to error codes and pre defined dictionary
|
6188
6333
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
|
6189
|
-
correlation_id:
|
6334
|
+
correlation_id: _this36.correlationId,
|
6190
6335
|
reason: (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.message,
|
6191
6336
|
stack: error.stack
|
6192
6337
|
});
|
6193
6338
|
|
6194
6339
|
// Upload logs on join Failure
|
6195
|
-
_triggerProxy.default.trigger(
|
6340
|
+
_triggerProxy.default.trigger(_this36, {
|
6196
6341
|
file: 'meeting/index',
|
6197
6342
|
function: 'join'
|
6198
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
6343
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this36);
|
6199
6344
|
joinFailed(error);
|
6200
|
-
|
6345
|
+
_this36.deferJoin = undefined;
|
6201
6346
|
return _promise.default.reject(error);
|
6202
6347
|
}).then(function (join) {
|
6203
6348
|
// @ts-ignore - config coming from registerPlugin
|
6204
|
-
if (
|
6349
|
+
if (_this36.config.enableAutomaticLLM) {
|
6205
6350
|
// @ts-ignore
|
6206
|
-
|
6207
|
-
|
6351
|
+
_this36.webex.internal.llm.on('online', _this36.handleLLMOnline);
|
6352
|
+
_this36.updateLLMConnection().catch(function (error) {
|
6208
6353
|
_loggerProxy.default.logger.error('Meeting:index#join --> Transcription Socket Connection Failed', error);
|
6209
6354
|
_metrics.default.sendBehavioralMetric(_constants2.default.LLM_CONNECTION_AFTER_JOIN_FAILURE, {
|
6210
|
-
correlation_id:
|
6355
|
+
correlation_id: _this36.correlationId,
|
6211
6356
|
reason: error === null || error === void 0 ? void 0 : error.message,
|
6212
6357
|
stack: error.stack
|
6213
6358
|
});
|
@@ -6239,7 +6384,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6239
6384
|
key: "updateLLMConnection",
|
6240
6385
|
value: (function () {
|
6241
6386
|
var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20() {
|
6242
|
-
var
|
6387
|
+
var _this37 = this;
|
6243
6388
|
var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, practiceSessionDatachannelUrl, isJoined, dataChannelUrl;
|
6244
6389
|
return _regenerator.default.wrap(function _callee20$(_context20) {
|
6245
6390
|
while (1) switch (_context20.prev = _context20.next) {
|
@@ -6279,9 +6424,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6279
6424
|
case 11:
|
6280
6425
|
return _context20.abrupt("return", this.webex.internal.llm.registerAndConnect(url, dataChannelUrl).then(function (registerAndConnectResult) {
|
6281
6426
|
// @ts-ignore - Fix type
|
6282
|
-
|
6427
|
+
_this37.webex.internal.llm.off('event:relay.event', _this37.processRelayEvent);
|
6283
6428
|
// @ts-ignore - Fix type
|
6284
|
-
|
6429
|
+
_this37.webex.internal.llm.on('event:relay.event', _this37.processRelayEvent);
|
6285
6430
|
_loggerProxy.default.logger.info('Meeting:index#updateLLMConnection --> enabled to receive relay events!');
|
6286
6431
|
return _promise.default.resolve(registerAndConnectResult);
|
6287
6432
|
}));
|
@@ -6335,7 +6480,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6335
6480
|
}, {
|
6336
6481
|
key: "dialInPstn",
|
6337
6482
|
value: function dialInPstn() {
|
6338
|
-
var
|
6483
|
+
var _this38 = this;
|
6339
6484
|
if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
|
6340
6485
|
|
6341
6486
|
var correlationId = this.correlationId,
|
@@ -6351,10 +6496,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6351
6496
|
}).catch(function (error) {
|
6352
6497
|
var _error$error2;
|
6353
6498
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
|
6354
|
-
correlation_id:
|
6355
|
-
dial_in_url:
|
6499
|
+
correlation_id: _this38.correlationId,
|
6500
|
+
dial_in_url: _this38.dialInUrl,
|
6356
6501
|
locus_id: locusUrl.split('/').pop(),
|
6357
|
-
client_url:
|
6502
|
+
client_url: _this38.deviceUrl,
|
6358
6503
|
reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
|
6359
6504
|
stack: error.stack
|
6360
6505
|
});
|
@@ -6372,7 +6517,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6372
6517
|
}, {
|
6373
6518
|
key: "dialOutPstn",
|
6374
6519
|
value: function dialOutPstn(phoneNumber) {
|
6375
|
-
var
|
6520
|
+
var _this39 = this;
|
6376
6521
|
if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
|
6377
6522
|
|
6378
6523
|
var correlationId = this.correlationId,
|
@@ -6389,10 +6534,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6389
6534
|
}).catch(function (error) {
|
6390
6535
|
var _error$error3;
|
6391
6536
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
|
6392
|
-
correlation_id:
|
6393
|
-
dial_out_url:
|
6537
|
+
correlation_id: _this39.correlationId,
|
6538
|
+
dial_out_url: _this39.dialOutUrl,
|
6394
6539
|
locus_id: locusUrl.split('/').pop(),
|
6395
|
-
client_url:
|
6540
|
+
client_url: _this39.deviceUrl,
|
6396
6541
|
reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
|
6397
6542
|
stack: error.stack
|
6398
6543
|
});
|
@@ -6423,7 +6568,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6423
6568
|
}, {
|
6424
6569
|
key: "moveTo",
|
6425
6570
|
value: function moveTo(resourceId) {
|
6426
|
-
var
|
6571
|
+
var _this40 = this;
|
6427
6572
|
if (!resourceId) {
|
6428
6573
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
6429
6574
|
}
|
@@ -6467,12 +6612,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6467
6612
|
while (1) switch (_context21.prev = _context21.next) {
|
6468
6613
|
case 0:
|
6469
6614
|
_context21.prev = 0;
|
6470
|
-
if (!(
|
6615
|
+
if (!(_this40.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
|
6471
6616
|
_context21.next = 4;
|
6472
6617
|
break;
|
6473
6618
|
}
|
6474
6619
|
_context21.next = 4;
|
6475
|
-
return
|
6620
|
+
return _this40.releaseScreenShareFloor();
|
6476
6621
|
case 4:
|
6477
6622
|
mediaSettings = {
|
6478
6623
|
mediaDirection: {
|
@@ -6484,37 +6629,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6484
6629
|
receiveShare: true
|
6485
6630
|
}
|
6486
6631
|
};
|
6487
|
-
|
6488
|
-
|
6632
|
+
_this40.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
|
6633
|
+
_this40.mediaProperties.unsetRemoteMedia();
|
6489
6634
|
|
6490
6635
|
// 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
|
6491
6636
|
// once the device answers we close the old connection and create new media server connection with only share enabled
|
6492
|
-
if (!
|
6637
|
+
if (!_this40.statsAnalyzer) {
|
6493
6638
|
_context21.next = 10;
|
6494
6639
|
break;
|
6495
6640
|
}
|
6496
6641
|
_context21.next = 10;
|
6497
|
-
return
|
6642
|
+
return _this40.statsAnalyzer.stopAnalyzer();
|
6498
6643
|
case 10:
|
6499
6644
|
_context21.next = 12;
|
6500
|
-
return
|
6645
|
+
return _this40.closeRemoteStreams();
|
6501
6646
|
case 12:
|
6502
6647
|
_context21.next = 14;
|
6503
|
-
return
|
6648
|
+
return _this40.closePeerConnections();
|
6504
6649
|
case 14:
|
6505
|
-
|
6506
|
-
|
6507
|
-
|
6508
|
-
|
6650
|
+
_this40.cleanupLocalStreams();
|
6651
|
+
_this40.unsetRemoteStreams();
|
6652
|
+
_this40.unsetPeerConnections();
|
6653
|
+
_this40.reconnectionManager.cleanUp();
|
6509
6654
|
_context21.next = 20;
|
6510
|
-
return
|
6655
|
+
return _this40.addMedia({
|
6511
6656
|
audioEnabled: false,
|
6512
6657
|
videoEnabled: false,
|
6513
6658
|
shareVideoEnabled: true
|
6514
6659
|
});
|
6515
6660
|
case 20:
|
6516
6661
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
|
6517
|
-
|
6662
|
+
_this40.isMoveToInProgress = false;
|
6518
6663
|
_context21.next = 29;
|
6519
6664
|
break;
|
6520
6665
|
case 24:
|
@@ -6522,12 +6667,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6522
6667
|
_context21.t0 = _context21["catch"](0);
|
6523
6668
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context21.t0);
|
6524
6669
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
6525
|
-
correlation_id:
|
6526
|
-
locus_id:
|
6670
|
+
correlation_id: _this40.correlationId,
|
6671
|
+
locus_id: _this40.locusUrl.split('/').pop(),
|
6527
6672
|
reason: _context21.t0.message,
|
6528
6673
|
stack: _context21.t0.stack
|
6529
6674
|
});
|
6530
|
-
|
6675
|
+
_this40.isMoveToInProgress = false;
|
6531
6676
|
case 29:
|
6532
6677
|
case "end":
|
6533
6678
|
return _context21.stop();
|
@@ -6543,17 +6688,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6543
6688
|
resourceId: resourceId,
|
6544
6689
|
moveToResource: true
|
6545
6690
|
}).then(function () {
|
6546
|
-
|
6691
|
+
_this40.meetingFiniteStateMachine.join();
|
6547
6692
|
}).catch(function (error) {
|
6548
|
-
|
6693
|
+
_this40.meetingFiniteStateMachine.fail(error);
|
6549
6694
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
6550
|
-
correlation_id:
|
6551
|
-
locus_id:
|
6695
|
+
correlation_id: _this40.correlationId,
|
6696
|
+
locus_id: _this40.locusUrl.split('/').pop(),
|
6552
6697
|
reason: error.message,
|
6553
6698
|
stack: error.stack
|
6554
6699
|
});
|
6555
6700
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', error);
|
6556
|
-
|
6701
|
+
_this40.isMoveToInProgress = false;
|
6557
6702
|
return _promise.default.reject(error);
|
6558
6703
|
});
|
6559
6704
|
}
|
@@ -6568,7 +6713,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6568
6713
|
}, {
|
6569
6714
|
key: "moveFrom",
|
6570
6715
|
value: function moveFrom(resourceId) {
|
6571
|
-
var
|
6716
|
+
var _this41 = this;
|
6572
6717
|
// On moveFrom ask the developer to re capture it moveFrom then updateMedia
|
6573
6718
|
if (!resourceId) {
|
6574
6719
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
@@ -6583,19 +6728,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6583
6728
|
}
|
6584
6729
|
});
|
6585
6730
|
return _util2.default.joinMeetingOptions(this).then(function () {
|
6586
|
-
return _util2.default.leaveMeeting(
|
6731
|
+
return _util2.default.leaveMeeting(_this41, {
|
6587
6732
|
resourceId: resourceId,
|
6588
6733
|
correlationId: oldCorrelationId,
|
6589
6734
|
moveMeeting: true
|
6590
6735
|
}).then(function () {
|
6591
|
-
|
6736
|
+
_this41.resourceId = '';
|
6592
6737
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
|
6593
6738
|
});
|
6594
6739
|
}).catch(function (error) {
|
6595
|
-
|
6740
|
+
_this41.meetingFiniteStateMachine.fail(error);
|
6596
6741
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
|
6597
|
-
correlation_id:
|
6598
|
-
locus_id:
|
6742
|
+
correlation_id: _this41.correlationId,
|
6743
|
+
locus_id: _this41.locusUrl.split('/').pop(),
|
6599
6744
|
reason: error.message,
|
6600
6745
|
stack: error.stack
|
6601
6746
|
});
|
@@ -6644,7 +6789,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6644
6789
|
turnServerInfo: turnServerInfo,
|
6645
6790
|
bundlePolicy: bundlePolicy,
|
6646
6791
|
// @ts-ignore - config coming from registerPlugin
|
6647
|
-
iceCandidatesTimeout: this.config.iceCandidatesGatheringTimeout
|
6792
|
+
iceCandidatesTimeout: this.config.iceCandidatesGatheringTimeout,
|
6793
|
+
// @ts-ignore - config coming from registerPlugin
|
6794
|
+
disableAudioMainDtx: this.config.experimental.disableAudioMainDtx,
|
6795
|
+
// @ts-ignore - config coming from registerPlugin
|
6796
|
+
enableAudioTwcc: this.config.enableAudioTwccForMultistream,
|
6797
|
+
stopIceGatheringAfterFirstRelayCandidate:
|
6798
|
+
// @ts-ignore - config coming from registerPlugin
|
6799
|
+
this.config.stopIceGatheringAfterFirstRelayCandidate
|
6648
6800
|
});
|
6649
6801
|
this.mediaProperties.setMediaPeerConnection(mc);
|
6650
6802
|
this.setupMediaConnectionListeners();
|
@@ -6711,9 +6863,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6711
6863
|
}, {
|
6712
6864
|
key: "forwardEvent",
|
6713
6865
|
value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
|
6714
|
-
var
|
6866
|
+
var _this42 = this;
|
6715
6867
|
eventEmitter.on(eventTypeToForward, function (data) {
|
6716
|
-
return _triggerProxy.default.trigger(
|
6868
|
+
return _triggerProxy.default.trigger(_this42, {
|
6717
6869
|
file: 'meetings',
|
6718
6870
|
function: 'addMedia'
|
6719
6871
|
}, meetingEventType, data);
|
@@ -6783,7 +6935,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6783
6935
|
key: "waitForMediaConnectionConnected",
|
6784
6936
|
value: (function () {
|
6785
6937
|
var _waitForMediaConnectionConnected = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24() {
|
6786
|
-
var iceConnected, _this$mediaProperties8, _this$mediaProperties9, _this$mediaProperties10, _this$mediaProperties11, _this$mediaProperties12, _this$mediaProperties13, _this$mediaProperties14;
|
6938
|
+
var iceConnected, _this$mediaProperties8, _this$mediaProperties9, _this$mediaProperties10, _this$mediaProperties11, _this$mediaProperties12, _this$mediaProperties13, _this$mediaProperties14, timedOutError;
|
6787
6939
|
return _regenerator.default.wrap(function _callee24$(_context24) {
|
6788
6940
|
while (1) switch (_context24.prev = _context24.next) {
|
6789
6941
|
case 0:
|
@@ -6791,7 +6943,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6791
6943
|
_context24.next = 3;
|
6792
6944
|
return this.mediaProperties.waitForMediaConnectionConnected();
|
6793
6945
|
case 3:
|
6794
|
-
_context24.next =
|
6946
|
+
_context24.next = 32;
|
6795
6947
|
break;
|
6796
6948
|
case 5:
|
6797
6949
|
_context24.prev = 5;
|
@@ -6833,7 +6985,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6833
6985
|
errors: _context24.t14
|
6834
6986
|
};
|
6835
6987
|
_context24.t16 = {
|
6836
|
-
meetingId: this.id
|
6988
|
+
meetingId: this.id,
|
6989
|
+
rawError: _context24.t0
|
6837
6990
|
};
|
6838
6991
|
_context24.t17 = {
|
6839
6992
|
name: 'client.ice.end',
|
@@ -6842,8 +6995,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6842
6995
|
};
|
6843
6996
|
_context24.t1.submitClientEvent.call(_context24.t1, _context24.t17);
|
6844
6997
|
case 29:
|
6845
|
-
|
6846
|
-
|
6998
|
+
timedOutError = new Error("Timed out waiting for media connection to be connected, correlationId=".concat(this.correlationId));
|
6999
|
+
timedOutError.cause = _context24.t0;
|
7000
|
+
throw timedOutError;
|
7001
|
+
case 32:
|
6847
7002
|
case "end":
|
6848
7003
|
return _context24.stop();
|
6849
7004
|
}
|
@@ -6874,6 +7029,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6874
7029
|
networkQualityMonitor: this.networkQualityMonitor,
|
6875
7030
|
isMultistream: this.isMultistream
|
6876
7031
|
});
|
7032
|
+
this.shareCAEventSentStatus = {
|
7033
|
+
transmitStart: false,
|
7034
|
+
transmitStop: false,
|
7035
|
+
receiveStart: false,
|
7036
|
+
receiveStop: false
|
7037
|
+
};
|
6877
7038
|
this.setupStatsAnalyzerEventHandlers();
|
6878
7039
|
this.networkQualityMonitor.on(_internalMediaCore.NetworkQualityEventNames.NETWORK_QUALITY, this.sendNetworkQualityEvent.bind(this));
|
6879
7040
|
}
|
@@ -6890,7 +7051,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6890
7051
|
key: "waitForRemoteSDPAnswer",
|
6891
7052
|
value: (function () {
|
6892
7053
|
var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25() {
|
6893
|
-
var
|
7054
|
+
var _this43 = this;
|
6894
7055
|
var LOG_HEADER, deferSDPAnswer;
|
6895
7056
|
return _regenerator.default.wrap(function _callee25$(_context25) {
|
6896
7057
|
while (1) switch (_context25.prev = _context25.next) {
|
@@ -6906,23 +7067,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6906
7067
|
deferSDPAnswer = this.deferSDPAnswer;
|
6907
7068
|
this.sdpResponseTimer = setTimeout(function () {
|
6908
7069
|
_loggerProxy.default.logger.warn("".concat(LOG_HEADER, " timeout! no REMOTE SDP ANSWER received within ").concat(_constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT / 1000, " seconds"));
|
7070
|
+
var error = new Error('Timed out waiting for REMOTE SDP ANSWER');
|
7071
|
+
|
6909
7072
|
// @ts-ignore
|
6910
|
-
|
7073
|
+
_this43.webex.internal.newMetrics.submitClientEvent({
|
6911
7074
|
name: 'client.media-engine.remote-sdp-received',
|
6912
7075
|
payload: {
|
6913
7076
|
canProceed: false,
|
6914
7077
|
errors: [
|
6915
7078
|
// @ts-ignore
|
6916
|
-
|
7079
|
+
_this43.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
|
6917
7080
|
clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
|
6918
7081
|
})]
|
6919
7082
|
},
|
6920
7083
|
options: {
|
6921
|
-
meetingId:
|
6922
|
-
rawError:
|
7084
|
+
meetingId: _this43.id,
|
7085
|
+
rawError: error
|
6923
7086
|
}
|
6924
7087
|
});
|
6925
|
-
deferSDPAnswer.reject(
|
7088
|
+
deferSDPAnswer.reject(error);
|
6926
7089
|
}, _constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT);
|
6927
7090
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " waiting for REMOTE SDP ANSWER..."));
|
6928
7091
|
return _context25.abrupt("return", deferSDPAnswer.promise);
|
@@ -7062,7 +7225,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7062
7225
|
break;
|
7063
7226
|
case 7:
|
7064
7227
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " error waiting for media to connect using UDP, TCP and TURN-TLS"), error);
|
7065
|
-
throw new _webexErrors.AddMediaFailed();
|
7228
|
+
throw new _webexErrors.AddMediaFailed(error);
|
7066
7229
|
case 9:
|
7067
7230
|
case "end":
|
7068
7231
|
return _context28.stop();
|
@@ -7425,10 +7588,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7425
7588
|
}, {
|
7426
7589
|
key: "addMedia",
|
7427
7590
|
value: function addMedia() {
|
7428
|
-
var
|
7591
|
+
var _this44 = this;
|
7429
7592
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
7430
7593
|
return this.addMediaInternal(function () {
|
7431
|
-
return
|
7594
|
+
return _this44.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
7432
7595
|
}, undefined, false, options);
|
7433
7596
|
}
|
7434
7597
|
|
@@ -7464,10 +7627,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7464
7627
|
_this$remoteMediaMana,
|
7465
7628
|
_yield$this$mediaProp,
|
7466
7629
|
connectionType,
|
7630
|
+
ipVersion,
|
7467
7631
|
selectedCandidatePairChanges,
|
7468
7632
|
numTransports,
|
7469
|
-
reachabilityStats,
|
7470
7633
|
iceCandidateErrors,
|
7634
|
+
reachabilityMetrics,
|
7471
7635
|
_this$mediaProperties15,
|
7472
7636
|
_this$mediaProperties16,
|
7473
7637
|
_this$mediaProperties17,
|
@@ -7489,7 +7653,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7489
7653
|
_this$mediaProperties33,
|
7490
7654
|
_this$mediaProperties34,
|
7491
7655
|
_this$mediaProperties35,
|
7492
|
-
|
7656
|
+
_reachabilityMetrics,
|
7493
7657
|
_yield$this$mediaProp2,
|
7494
7658
|
_selectedCandidatePairChanges,
|
7495
7659
|
_numTransports,
|
@@ -7610,28 +7774,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7610
7774
|
case 46:
|
7611
7775
|
_yield$this$mediaProp = _context35.sent;
|
7612
7776
|
connectionType = _yield$this$mediaProp.connectionType;
|
7777
|
+
ipVersion = _yield$this$mediaProp.ipVersion;
|
7613
7778
|
selectedCandidatePairChanges = _yield$this$mediaProp.selectedCandidatePairChanges;
|
7614
7779
|
numTransports = _yield$this$mediaProp.numTransports;
|
7615
|
-
_context35.next = 52;
|
7616
|
-
return this.webex.meetings.reachability.getReachabilityMetrics();
|
7617
|
-
case 52:
|
7618
|
-
reachabilityStats = _context35.sent;
|
7619
7780
|
iceCandidateErrors = Object.fromEntries(this.iceCandidateErrors);
|
7781
|
+
_context35.next = 54;
|
7782
|
+
return this.getMediaReachabilityMetricFields();
|
7783
|
+
case 54:
|
7784
|
+
reachabilityMetrics = _context35.sent;
|
7620
7785
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, _objectSpread(_objectSpread(_objectSpread({
|
7621
7786
|
correlation_id: this.correlationId,
|
7622
7787
|
locus_id: this.locusUrl.split('/').pop(),
|
7623
7788
|
connectionType: connectionType,
|
7789
|
+
ipVersion: ipVersion,
|
7624
7790
|
selectedCandidatePairChanges: selectedCandidatePairChanges,
|
7625
7791
|
numTransports: numTransports,
|
7626
7792
|
isMultistream: this.isMultistream,
|
7627
7793
|
retriedWithTurnServer: this.addMediaData.retriedWithTurnServer,
|
7628
7794
|
isJoinWithMediaRetry: this.joinWithMediaRetryInfo.isRetry
|
7629
|
-
},
|
7795
|
+
}, reachabilityMetrics), iceCandidateErrors), {}, {
|
7630
7796
|
iceCandidatesCount: this.iceCandidatesCount
|
7631
7797
|
}));
|
7632
7798
|
// @ts-ignore
|
7633
7799
|
this.webex.internal.newMetrics.submitClientEvent({
|
7634
7800
|
name: 'client.media-engine.ready',
|
7801
|
+
payload: {
|
7802
|
+
ipVersion: ipVersion
|
7803
|
+
},
|
7635
7804
|
options: {
|
7636
7805
|
meetingId: this.id
|
7637
7806
|
}
|
@@ -7641,21 +7810,21 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7641
7810
|
// We can log ReceiveSlot SSRCs only after the SDP exchange, so doing it here:
|
7642
7811
|
(_this$remoteMediaMana = this.remoteMediaManager) === null || _this$remoteMediaMana === void 0 ? void 0 : _this$remoteMediaMana.logAllReceiveSlots();
|
7643
7812
|
this.startPeriodicLogUpload();
|
7644
|
-
_context35.next =
|
7813
|
+
_context35.next = 80;
|
7645
7814
|
break;
|
7646
|
-
case
|
7647
|
-
_context35.prev =
|
7815
|
+
case 62:
|
7816
|
+
_context35.prev = 62;
|
7648
7817
|
_context35.t1 = _context35["catch"](19);
|
7649
7818
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context35.t1);
|
7650
7819
|
|
7651
7820
|
// @ts-ignore
|
7652
|
-
_context35.next =
|
7653
|
-
return this.
|
7654
|
-
case
|
7655
|
-
|
7656
|
-
_context35.next =
|
7821
|
+
_context35.next = 67;
|
7822
|
+
return this.getMediaReachabilityMetricFields();
|
7823
|
+
case 67:
|
7824
|
+
_reachabilityMetrics = _context35.sent;
|
7825
|
+
_context35.next = 70;
|
7657
7826
|
return this.mediaProperties.getCurrentConnectionInfo();
|
7658
|
-
case
|
7827
|
+
case 70:
|
7659
7828
|
_yield$this$mediaProp2 = _context35.sent;
|
7660
7829
|
_selectedCandidatePairChanges = _yield$this$mediaProp2.selectedCandidatePairChanges;
|
7661
7830
|
_numTransports = _yield$this$mediaProp2.numTransports;
|
@@ -7676,12 +7845,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7676
7845
|
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',
|
7677
7846
|
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',
|
7678
7847
|
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'
|
7679
|
-
},
|
7848
|
+
}, _reachabilityMetrics), _iceCandidateErrors), {}, {
|
7680
7849
|
iceCandidatesCount: this.iceCandidatesCount
|
7681
7850
|
}));
|
7682
|
-
_context35.next =
|
7851
|
+
_context35.next = 77;
|
7683
7852
|
return this.cleanUpOnAddMediaFailure();
|
7684
|
-
case
|
7853
|
+
case 77:
|
7685
7854
|
// Upload logs on error while adding media
|
7686
7855
|
_triggerProxy.default.trigger(this, {
|
7687
7856
|
file: 'meeting/index',
|
@@ -7693,15 +7862,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7693
7862
|
});
|
7694
7863
|
}
|
7695
7864
|
throw _context35.t1;
|
7696
|
-
case
|
7697
|
-
_context35.prev =
|
7865
|
+
case 80:
|
7866
|
+
_context35.prev = 80;
|
7698
7867
|
this.addMediaData.icePhaseCallback = DEFAULT_ICE_PHASE_CALLBACK;
|
7699
|
-
return _context35.finish(
|
7700
|
-
case
|
7868
|
+
return _context35.finish(80);
|
7869
|
+
case 83:
|
7701
7870
|
case "end":
|
7702
7871
|
return _context35.stop();
|
7703
7872
|
}
|
7704
|
-
}, _callee35, this, [[19,
|
7873
|
+
}, _callee35, this, [[19, 62, 80, 83], [24, 29]]);
|
7705
7874
|
}));
|
7706
7875
|
function addMediaInternal(_x33, _x34, _x35) {
|
7707
7876
|
return _addMediaInternal.apply(this, arguments);
|
@@ -7733,7 +7902,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7733
7902
|
* @memberof Meeting
|
7734
7903
|
*/
|
7735
7904
|
function enqueueMediaUpdate(mediaUpdateType) {
|
7736
|
-
var
|
7905
|
+
var _this45 = this;
|
7737
7906
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
7738
7907
|
var canUpdateMediaNow = this.canUpdateMedia();
|
7739
7908
|
return new _promise.default(function (resolve, reject) {
|
@@ -7744,9 +7913,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7744
7913
|
options: options
|
7745
7914
|
};
|
7746
7915
|
_loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
|
7747
|
-
|
7916
|
+
_this45.queuedMediaUpdates.push(queueItem);
|
7748
7917
|
if (canUpdateMediaNow) {
|
7749
|
-
|
7918
|
+
_this45.processNextQueuedMediaUpdate();
|
7750
7919
|
}
|
7751
7920
|
});
|
7752
7921
|
}
|
@@ -7851,7 +8020,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7851
8020
|
}, {
|
7852
8021
|
key: "acknowledge",
|
7853
8022
|
value: function acknowledge(type) {
|
7854
|
-
var
|
8023
|
+
var _this46 = this;
|
7855
8024
|
if (!type) {
|
7856
8025
|
return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
|
7857
8026
|
}
|
@@ -7863,12 +8032,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7863
8032
|
}).then(function (response) {
|
7864
8033
|
return _promise.default.resolve(response);
|
7865
8034
|
}).then(function (response) {
|
7866
|
-
|
8035
|
+
_this46.meetingFiniteStateMachine.ring(type);
|
7867
8036
|
// @ts-ignore
|
7868
|
-
|
8037
|
+
_this46.webex.internal.newMetrics.submitClientEvent({
|
7869
8038
|
name: 'client.alert.displayed',
|
7870
8039
|
options: {
|
7871
|
-
meetingId:
|
8040
|
+
meetingId: _this46.id
|
7872
8041
|
}
|
7873
8042
|
});
|
7874
8043
|
return _promise.default.resolve({
|
@@ -7893,12 +8062,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7893
8062
|
}, {
|
7894
8063
|
key: "decline",
|
7895
8064
|
value: function decline(reason) {
|
7896
|
-
var
|
8065
|
+
var _this47 = this;
|
7897
8066
|
return _util2.default.declineMeeting(this, reason).then(function (decline) {
|
7898
|
-
|
8067
|
+
_this47.meetingFiniteStateMachine.decline();
|
7899
8068
|
return _promise.default.resolve(decline);
|
7900
8069
|
}).catch(function (error) {
|
7901
|
-
|
8070
|
+
_this47.meetingFiniteStateMachine.fail(error);
|
7902
8071
|
return _promise.default.reject(error);
|
7903
8072
|
});
|
7904
8073
|
}
|
@@ -7949,7 +8118,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7949
8118
|
}, {
|
7950
8119
|
key: "leave",
|
7951
8120
|
value: function leave() {
|
7952
|
-
var
|
8121
|
+
var _this48 = this;
|
7953
8122
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
7954
8123
|
var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
|
7955
8124
|
|
@@ -7961,7 +8130,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7961
8130
|
var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
7962
8131
|
return (
|
7963
8132
|
// @ts-ignore
|
7964
|
-
|
8133
|
+
_this48.webex.internal.newMetrics.submitClientEvent({
|
7965
8134
|
name: 'client.call.leave',
|
7966
8135
|
payload: _objectSpread({
|
7967
8136
|
trigger: 'user-interaction',
|
@@ -7969,7 +8138,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7969
8138
|
leaveReason: options.clientEventLeaveReason
|
7970
8139
|
}, payload),
|
7971
8140
|
options: {
|
7972
|
-
meetingId:
|
8141
|
+
meetingId: _this48.id
|
7973
8142
|
}
|
7974
8143
|
})
|
7975
8144
|
);
|
@@ -7978,24 +8147,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7978
8147
|
return _util2.default.leaveMeeting(this, options).then(function (leave) {
|
7979
8148
|
// CA team recommends submitting this *after* locus /leave
|
7980
8149
|
submitLeaveMetric();
|
7981
|
-
|
7982
|
-
|
8150
|
+
_this48.meetingFiniteStateMachine.leave();
|
8151
|
+
_this48.clearMeetingData();
|
7983
8152
|
|
7984
8153
|
// upload logs on leave irrespective of meeting delete
|
7985
|
-
_triggerProxy.default.trigger(
|
8154
|
+
_triggerProxy.default.trigger(_this48, {
|
7986
8155
|
file: 'meeting/index',
|
7987
8156
|
function: 'leave'
|
7988
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8157
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this48);
|
7989
8158
|
|
7990
8159
|
// TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
|
7991
|
-
if (
|
8160
|
+
if (_this48.wirelessShare || _this48.guest) {
|
7992
8161
|
// If screen sharing clean the meeting object
|
7993
|
-
_triggerProxy.default.trigger(
|
8162
|
+
_triggerProxy.default.trigger(_this48, {
|
7994
8163
|
file: 'meeting/index',
|
7995
8164
|
function: 'leave'
|
7996
8165
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
7997
8166
|
reason: options.reason,
|
7998
|
-
meetingId:
|
8167
|
+
meetingId: _this48.id
|
7999
8168
|
});
|
8000
8169
|
}
|
8001
8170
|
_loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
|
@@ -8012,16 +8181,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8012
8181
|
shownToUser: false
|
8013
8182
|
}]
|
8014
8183
|
});
|
8015
|
-
|
8184
|
+
_this48.meetingFiniteStateMachine.fail(error);
|
8016
8185
|
_loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
|
8017
8186
|
// upload logs on leave irrespective of meeting delete
|
8018
|
-
_triggerProxy.default.trigger(
|
8187
|
+
_triggerProxy.default.trigger(_this48, {
|
8019
8188
|
file: 'meeting/index',
|
8020
8189
|
function: 'leave'
|
8021
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8190
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this48);
|
8022
8191
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
|
8023
|
-
correlation_id:
|
8024
|
-
locus_id:
|
8192
|
+
correlation_id: _this48.correlationId,
|
8193
|
+
locus_id: _this48.locusUrl.split('/').pop(),
|
8025
8194
|
reason: error.message,
|
8026
8195
|
stack: error.stack,
|
8027
8196
|
code: error.code
|
@@ -8041,7 +8210,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8041
8210
|
}, {
|
8042
8211
|
key: "startWhiteboardShare",
|
8043
8212
|
value: function startWhiteboardShare(channelUrl, resourceToken) {
|
8044
|
-
var
|
8213
|
+
var _this49 = this;
|
8045
8214
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
8046
8215
|
return element.name === 'whiteboard';
|
8047
8216
|
});
|
@@ -8070,13 +8239,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8070
8239
|
body.resourceToken = resourceToken;
|
8071
8240
|
}
|
8072
8241
|
return this.meetingRequest.changeMeetingFloor(body).then(function () {
|
8073
|
-
|
8242
|
+
_this49.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
8074
8243
|
return _promise.default.resolve();
|
8075
8244
|
}).catch(function (error) {
|
8076
8245
|
_loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
|
8077
8246
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
|
8078
|
-
correlation_id:
|
8079
|
-
locus_id:
|
8247
|
+
correlation_id: _this49.correlationId,
|
8248
|
+
locus_id: _this49.locusUrl.split('/').pop(),
|
8080
8249
|
reason: error.message,
|
8081
8250
|
stack: error.stack,
|
8082
8251
|
board: {
|
@@ -8099,7 +8268,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8099
8268
|
}, {
|
8100
8269
|
key: "stopWhiteboardShare",
|
8101
8270
|
value: function stopWhiteboardShare(channelUrl) {
|
8102
|
-
var
|
8271
|
+
var _this50 = this;
|
8103
8272
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
8104
8273
|
return element.name === 'whiteboard';
|
8105
8274
|
});
|
@@ -8122,8 +8291,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8122
8291
|
}).catch(function (error) {
|
8123
8292
|
_loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
|
8124
8293
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
|
8125
|
-
correlation_id:
|
8126
|
-
locus_id:
|
8294
|
+
correlation_id: _this50.correlationId,
|
8295
|
+
locus_id: _this50.locusUrl.split('/').pop(),
|
8127
8296
|
reason: error.message,
|
8128
8297
|
stack: error.stack,
|
8129
8298
|
board: {
|
@@ -8145,7 +8314,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8145
8314
|
}, {
|
8146
8315
|
key: "requestScreenShareFloor",
|
8147
8316
|
value: function requestScreenShareFloor() {
|
8148
|
-
var
|
8317
|
+
var _this51 = this;
|
8149
8318
|
if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
|
8150
8319
|
_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, ")"));
|
8151
8320
|
this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
@@ -8176,34 +8345,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8176
8345
|
resourceUrl: this.resourceUrl,
|
8177
8346
|
shareInstanceId: this.localShareInstanceId
|
8178
8347
|
}).then(function () {
|
8179
|
-
|
8348
|
+
_this51.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
|
8180
8349
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
|
8181
|
-
correlation_id:
|
8182
|
-
locus_id:
|
8350
|
+
correlation_id: _this51.correlationId,
|
8351
|
+
locus_id: _this51.locusUrl.split('/').pop()
|
8183
8352
|
});
|
8184
8353
|
return _promise.default.resolve();
|
8185
8354
|
}).catch(function (error) {
|
8186
8355
|
_loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
|
8187
8356
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
|
8188
|
-
correlation_id:
|
8189
|
-
locus_id:
|
8357
|
+
correlation_id: _this51.correlationId,
|
8358
|
+
locus_id: _this51.locusUrl.split('/').pop(),
|
8190
8359
|
reason: error.message,
|
8191
8360
|
stack: error.stack
|
8192
8361
|
});
|
8193
8362
|
|
8194
8363
|
// @ts-ignore
|
8195
|
-
|
8364
|
+
_this51.webex.internal.newMetrics.submitClientEvent({
|
8196
8365
|
name: 'client.share.floor-granted.local',
|
8197
8366
|
payload: {
|
8198
8367
|
mediaType: 'share',
|
8199
8368
|
errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
|
8200
|
-
shareInstanceId:
|
8369
|
+
shareInstanceId: _this51.localShareInstanceId
|
8201
8370
|
},
|
8202
8371
|
options: {
|
8203
|
-
meetingId:
|
8372
|
+
meetingId: _this51.id
|
8204
8373
|
}
|
8205
8374
|
});
|
8206
|
-
|
8375
|
+
_this51.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
8207
8376
|
return _promise.default.reject(error);
|
8208
8377
|
});
|
8209
8378
|
}
|
@@ -8226,10 +8395,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8226
8395
|
}, {
|
8227
8396
|
key: "requestScreenShareFloorIfPending",
|
8228
8397
|
value: function requestScreenShareFloorIfPending() {
|
8229
|
-
var
|
8398
|
+
var _this52 = this;
|
8230
8399
|
if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
|
8231
8400
|
this.requestScreenShareFloor().then(function () {
|
8232
|
-
|
8401
|
+
_this52.floorGrantPending = false;
|
8233
8402
|
});
|
8234
8403
|
}
|
8235
8404
|
}
|
@@ -8243,7 +8412,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8243
8412
|
}, {
|
8244
8413
|
key: "releaseScreenShareFloor",
|
8245
8414
|
value: function releaseScreenShareFloor() {
|
8246
|
-
var
|
8415
|
+
var _this53 = this;
|
8247
8416
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
8248
8417
|
return element.name === _constants.CONTENT;
|
8249
8418
|
});
|
@@ -8278,8 +8447,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8278
8447
|
}).catch(function (error) {
|
8279
8448
|
_loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
|
8280
8449
|
_metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
|
8281
|
-
correlation_id:
|
8282
|
-
locus_id:
|
8450
|
+
correlation_id: _this53.correlationId,
|
8451
|
+
locus_id: _this53.locusUrl.split('/').pop(),
|
8283
8452
|
reason: error.message,
|
8284
8453
|
stack: error.stack
|
8285
8454
|
});
|
@@ -8459,7 +8628,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8459
8628
|
}, {
|
8460
8629
|
key: "changeVideoLayout",
|
8461
8630
|
value: function changeVideoLayout(layoutType) {
|
8462
|
-
var
|
8631
|
+
var _this54 = this;
|
8463
8632
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
8464
8633
|
var main = renderInfo.main,
|
8465
8634
|
content = renderInfo.content;
|
@@ -8513,7 +8682,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8513
8682
|
}
|
8514
8683
|
this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
|
8515
8684
|
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
|
8516
|
-
_triggerProxy.default.trigger(
|
8685
|
+
_triggerProxy.default.trigger(_this54, {
|
8517
8686
|
file: 'meeting/index',
|
8518
8687
|
function: 'changeVideoLayout'
|
8519
8688
|
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
|
@@ -8629,7 +8798,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8629
8798
|
}, {
|
8630
8799
|
key: "endMeetingForAll",
|
8631
8800
|
value: function endMeetingForAll() {
|
8632
|
-
var
|
8801
|
+
var _this55 = this;
|
8633
8802
|
// @ts-ignore
|
8634
8803
|
this.webex.internal.newMetrics.submitClientEvent({
|
8635
8804
|
name: 'client.call.leave',
|
@@ -8647,25 +8816,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8647
8816
|
locus_id: this.locusId
|
8648
8817
|
});
|
8649
8818
|
return _util2.default.endMeetingForAll(this).then(function (end) {
|
8650
|
-
|
8651
|
-
|
8819
|
+
_this55.meetingFiniteStateMachine.end();
|
8820
|
+
_this55.clearMeetingData();
|
8652
8821
|
// upload logs on leave irrespective of meeting delete
|
8653
|
-
_triggerProxy.default.trigger(
|
8822
|
+
_triggerProxy.default.trigger(_this55, {
|
8654
8823
|
file: 'meeting/index',
|
8655
8824
|
function: 'endMeetingForAll'
|
8656
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8825
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this55);
|
8657
8826
|
return end;
|
8658
8827
|
}).catch(function (error) {
|
8659
|
-
|
8828
|
+
_this55.meetingFiniteStateMachine.fail(error);
|
8660
8829
|
_loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
|
8661
8830
|
// upload logs on leave irrespective of meeting delete
|
8662
|
-
_triggerProxy.default.trigger(
|
8831
|
+
_triggerProxy.default.trigger(_this55, {
|
8663
8832
|
file: 'meeting/index',
|
8664
8833
|
function: 'endMeetingForAll'
|
8665
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8834
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this55);
|
8666
8835
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
|
8667
|
-
correlation_id:
|
8668
|
-
locus_id:
|
8836
|
+
correlation_id: _this55.correlationId,
|
8837
|
+
locus_id: _this55.locusUrl.split('/').pop(),
|
8669
8838
|
reason: error.message,
|
8670
8839
|
stack: error.stack,
|
8671
8840
|
code: error.code
|
@@ -8730,6 +8899,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8730
8899
|
});
|
8731
8900
|
}
|
8732
8901
|
|
8902
|
+
/**
|
8903
|
+
* Method to set post meeting data consent.
|
8904
|
+
*
|
8905
|
+
* @param {boolean} accept - whether consent accepted or declined
|
8906
|
+
* @returns {Promise}
|
8907
|
+
* @public
|
8908
|
+
* @memberof Meeting
|
8909
|
+
*/
|
8910
|
+
}, {
|
8911
|
+
key: "setPostMeetingDataConsent",
|
8912
|
+
value: function setPostMeetingDataConsent(accept) {
|
8913
|
+
return this.meetingRequest.setPostMeetingDataConsent({
|
8914
|
+
postMeetingDataConsent: accept,
|
8915
|
+
locusUrl: this.locusUrl,
|
8916
|
+
deviceUrl: this.deviceUrl,
|
8917
|
+
selfId: this.members.selfId
|
8918
|
+
});
|
8919
|
+
}
|
8920
|
+
|
8733
8921
|
/**
|
8734
8922
|
* Throws if we don't have a media connection created
|
8735
8923
|
*
|
@@ -8807,7 +8995,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8807
8995
|
_this$mediaProperties43,
|
8808
8996
|
_this$mediaProperties44,
|
8809
8997
|
_this$mediaProperties45,
|
8810
|
-
|
8998
|
+
_this56 = this;
|
8811
8999
|
var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
|
8812
9000
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
|
8813
9001
|
if (!this.canUpdateMedia()) {
|
@@ -8832,8 +9020,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8832
9020
|
}).catch(function (error) {
|
8833
9021
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
|
8834
9022
|
_metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
|
8835
|
-
correlation_id:
|
8836
|
-
locus_id:
|
9023
|
+
correlation_id: _this56.correlationId,
|
9024
|
+
locus_id: _this56.locusUrl.split('/').pop(),
|
8837
9025
|
reason: error.message,
|
8838
9026
|
stack: error.stack
|
8839
9027
|
});
|
@@ -9055,10 +9243,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
9055
9243
|
return this.updateTranscodedMediaConnection();
|
9056
9244
|
case 31:
|
9057
9245
|
if (!floorRequestNeeded) {
|
9058
|
-
_context40.next =
|
9246
|
+
_context40.next = 39;
|
9059
9247
|
break;
|
9060
9248
|
}
|
9061
9249
|
this.localShareInstanceId = _uuid.default.v4();
|
9250
|
+
this.shareCAEventSentStatus.transmitStart = false;
|
9251
|
+
this.shareCAEventSentStatus.transmitStop = false;
|
9062
9252
|
|
9063
9253
|
// @ts-ignore
|
9064
9254
|
this.webex.internal.newMetrics.submitClientEvent({
|
@@ -9079,9 +9269,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
9079
9269
|
// we're sending the http request to Locus to request the screen share floor
|
9080
9270
|
// only after the SDP update, because that's how it's always been done for transcoded meetings
|
9081
9271
|
// and also if sharing from the start, we need confluence to have been created
|
9082
|
-
_context40.next =
|
9272
|
+
_context40.next = 39;
|
9083
9273
|
return this.enqueueScreenShareFloorRequest();
|
9084
|
-
case
|
9274
|
+
case 39:
|
9085
9275
|
case "end":
|
9086
9276
|
return _context40.stop();
|
9087
9277
|
}
|
@@ -9219,6 +9409,56 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
9219
9409
|
}
|
9220
9410
|
return _promise.default.resolve();
|
9221
9411
|
}
|
9412
|
+
|
9413
|
+
/**
|
9414
|
+
* Gets the media reachability metrics
|
9415
|
+
*
|
9416
|
+
* @returns {Promise<MediaReachabilityMetrics>}
|
9417
|
+
*/
|
9418
|
+
}, {
|
9419
|
+
key: "getMediaReachabilityMetricFields",
|
9420
|
+
value: (function () {
|
9421
|
+
var _getMediaReachabilityMetricFields = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee42() {
|
9422
|
+
var reachabilityMetrics, successKeys, totalSuccessCases, isSubnetReachable, selectedCluster;
|
9423
|
+
return _regenerator.default.wrap(function _callee42$(_context42) {
|
9424
|
+
while (1) switch (_context42.prev = _context42.next) {
|
9425
|
+
case 0:
|
9426
|
+
_context42.next = 2;
|
9427
|
+
return this.webex.meetings.reachability.getReachabilityMetrics();
|
9428
|
+
case 2:
|
9429
|
+
reachabilityMetrics = _context42.sent;
|
9430
|
+
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'];
|
9431
|
+
totalSuccessCases = successKeys.reduce(function (total, key) {
|
9432
|
+
var value = reachabilityMetrics[key];
|
9433
|
+
if (typeof value === 'number') {
|
9434
|
+
return total + value;
|
9435
|
+
}
|
9436
|
+
return total;
|
9437
|
+
}, 0);
|
9438
|
+
isSubnetReachable = null;
|
9439
|
+
if (totalSuccessCases > 0) {
|
9440
|
+
// @ts-ignore
|
9441
|
+
isSubnetReachable = this.webex.meetings.reachability.isSubnetReachable(this.mediaServerIp);
|
9442
|
+
}
|
9443
|
+
selectedCluster = null;
|
9444
|
+
if (this.mediaConnections && this.mediaConnections.length > 0) {
|
9445
|
+
selectedCluster = this.mediaConnections[0].mediaAgentCluster;
|
9446
|
+
}
|
9447
|
+
return _context42.abrupt("return", _objectSpread(_objectSpread({}, reachabilityMetrics), {}, {
|
9448
|
+
isSubnetReachable: isSubnetReachable,
|
9449
|
+
selectedCluster: selectedCluster
|
9450
|
+
}));
|
9451
|
+
case 10:
|
9452
|
+
case "end":
|
9453
|
+
return _context42.stop();
|
9454
|
+
}
|
9455
|
+
}, _callee42, this);
|
9456
|
+
}));
|
9457
|
+
function getMediaReachabilityMetricFields() {
|
9458
|
+
return _getMediaReachabilityMetricFields.apply(this, arguments);
|
9459
|
+
}
|
9460
|
+
return getMediaReachabilityMetricFields;
|
9461
|
+
}())
|
9222
9462
|
}]);
|
9223
9463
|
return Meeting;
|
9224
9464
|
}(_webexCore.StatelessWebexPlugin);
|