@webex/plugin-meetings 3.8.0-next.4 → 3.8.0-next.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/constants.js +14 -1
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +2 -0
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/types.js.map +1 -1
- package/dist/controls-options-manager/util.js +52 -0
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.js +28 -10
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +20 -1
- package/dist/locus-info/index.js.map +1 -1
- package/dist/media/index.js +3 -15
- package/dist/media/index.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +11 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +443 -256
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +21 -22
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.js +0 -2
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +30 -0
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +10 -2
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +359 -60
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meetings/index.js +60 -1
- package/dist/meetings/index.js.map +1 -1
- package/dist/member/index.js +10 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +3 -0
- package/dist/member/util.js.map +1 -1
- package/dist/metrics/constants.js +9 -0
- package/dist/metrics/constants.js.map +1 -1
- package/dist/reachability/clusterReachability.js +52 -8
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/index.js +70 -45
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/reachability.types.js +14 -0
- package/dist/reachability/reachability.types.js.map +1 -1
- package/dist/reachability/request.js +19 -3
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +2 -2
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/util.js +5 -5
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/turnDiscovery.js +45 -27
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/roap/types.js +17 -0
- package/dist/roap/types.js.map +1 -0
- package/dist/types/config.d.ts +1 -0
- package/dist/types/constants.d.ts +10 -0
- package/dist/types/controls-options-manager/enums.d.ts +3 -1
- package/dist/types/controls-options-manager/types.d.ts +7 -1
- package/dist/types/locus-info/index.d.ts +1 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +10 -0
- package/dist/types/meeting/index.d.ts +47 -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 +2 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +80 -0
- package/dist/types/meetings/index.d.ts +29 -0
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/metrics/constants.d.ts +9 -0
- package/dist/types/reachability/clusterReachability.d.ts +13 -1
- package/dist/types/reachability/index.d.ts +2 -1
- package/dist/types/reachability/reachability.types.d.ts +5 -0
- package/dist/types/roap/index.d.ts +3 -2
- package/dist/types/roap/turnDiscovery.d.ts +5 -17
- package/dist/types/roap/types.d.ts +16 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +22 -22
- package/src/config.ts +1 -0
- package/src/constants.ts +17 -0
- package/src/controls-options-manager/enums.ts +2 -0
- package/src/controls-options-manager/types.ts +11 -1
- package/src/controls-options-manager/util.ts +62 -0
- package/src/locus-info/controlsUtils.ts +44 -14
- package/src/locus-info/index.ts +23 -1
- package/src/media/index.ts +5 -21
- package/src/meeting/in-meeting-actions.ts +20 -0
- package/src/meeting/index.ts +263 -69
- package/src/meeting/locusMediaRequest.ts +27 -22
- package/src/meeting/muteState.ts +0 -2
- package/src/meeting/request.ts +36 -1
- package/src/meeting/request.type.ts +7 -0
- package/src/meeting/util.ts +9 -2
- package/src/meeting-info/meeting-info-v2.ts +247 -6
- package/src/meetings/index.ts +72 -1
- package/src/member/index.ts +11 -0
- package/src/member/util.ts +3 -0
- package/src/metrics/constants.ts +9 -0
- package/src/reachability/clusterReachability.ts +47 -1
- package/src/reachability/index.ts +15 -0
- package/src/reachability/reachability.types.ts +6 -0
- package/src/reachability/request.ts +7 -0
- package/src/reconnection-manager/index.ts +2 -2
- package/src/recording-controller/util.ts +17 -13
- package/src/roap/index.ts +3 -7
- package/src/roap/turnDiscovery.ts +34 -39
- package/src/roap/types.ts +23 -0
- package/test/unit/spec/controls-options-manager/util.js +120 -0
- package/test/unit/spec/locus-info/controlsUtils.js +103 -9
- package/test/unit/spec/locus-info/index.js +28 -0
- package/test/unit/spec/media/index.ts +6 -16
- package/test/unit/spec/meeting/in-meeting-actions.ts +13 -4
- package/test/unit/spec/meeting/index.js +490 -130
- package/test/unit/spec/meeting/locusMediaRequest.ts +95 -87
- package/test/unit/spec/meeting/muteState.js +0 -2
- package/test/unit/spec/meeting/request.js +32 -1
- package/test/unit/spec/meeting/utils.js +115 -18
- package/test/unit/spec/meeting-info/meetinginfov2.js +443 -114
- package/test/unit/spec/meetings/index.js +78 -1
- package/test/unit/spec/member/index.js +7 -0
- package/test/unit/spec/member/util.js +24 -0
- package/test/unit/spec/reachability/clusterReachability.ts +47 -1
- package/test/unit/spec/reachability/index.ts +12 -0
- package/test/unit/spec/reachability/request.js +47 -2
- package/test/unit/spec/reconnection-manager/index.js +4 -4
- package/test/unit/spec/roap/turnDiscovery.ts +110 -28
package/dist/meeting/index.js
CHANGED
@@ -21,6 +21,7 @@ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/
|
|
21
21
|
var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
|
22
22
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
23
23
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
|
24
|
+
var _isNan = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/number/is-nan"));
|
24
25
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
25
26
|
var _weakMap = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/weak-map"));
|
26
27
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/typeof"));
|
@@ -506,6 +507,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
506
507
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "allowMediaInLobby", void 0);
|
507
508
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "localShareInstanceId", void 0);
|
508
509
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "remoteShareInstanceId", void 0);
|
510
|
+
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "shareCAEventSentStatus", void 0);
|
509
511
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "turnDiscoverySkippedReason", void 0);
|
510
512
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "turnServerUsed", void 0);
|
511
513
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "areVoiceaEventsSetup", false);
|
@@ -646,7 +648,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
646
648
|
rawError: error
|
647
649
|
}
|
648
650
|
});
|
649
|
-
} else if (error instanceof _internalMediaCore.Errors.SdpOfferHandlingError
|
651
|
+
} else if (error instanceof _internalMediaCore.Errors.SdpOfferHandlingError) {
|
650
652
|
sendBehavioralMetric(_constants2.default.PEERCONNECTION_FAILURE, error, _this.correlationId);
|
651
653
|
|
652
654
|
// @ts-ignore
|
@@ -660,6 +662,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
660
662
|
rawError: error
|
661
663
|
}
|
662
664
|
});
|
665
|
+
} else if (error instanceof _internalMediaCore.Errors.SdpAnswerHandlingError) {
|
666
|
+
sendBehavioralMetric(_constants2.default.PEERCONNECTION_FAILURE, error, _this.correlationId);
|
667
|
+
|
668
|
+
// @ts-ignore
|
669
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
670
|
+
name: 'client.media-engine.remote-sdp-received',
|
671
|
+
payload: {
|
672
|
+
canProceed: false
|
673
|
+
},
|
674
|
+
options: {
|
675
|
+
meetingId: _this.id,
|
676
|
+
rawError: error
|
677
|
+
}
|
678
|
+
});
|
679
|
+
if (_this.deferSDPAnswer) {
|
680
|
+
clearTimeout(_this.sdpResponseTimer);
|
681
|
+
_this.sdpResponseTimer = undefined;
|
682
|
+
_this.deferSDPAnswer.reject();
|
683
|
+
}
|
663
684
|
} else if (error instanceof _internalMediaCore.Errors.SdpError) {
|
664
685
|
// this covers also the case of Errors.IceGatheringError which extends Errors.SdpError
|
665
686
|
sendBehavioralMetric(_constants2.default.INVALID_ICE_CANDIDATE, error, _this.correlationId);
|
@@ -1066,85 +1087,101 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1066
1087
|
file: 'meeting/index',
|
1067
1088
|
function: 'addMedia'
|
1068
1089
|
}, _constants.EVENT_TRIGGERS.MEETING_MEDIA_LOCAL_STARTED, data);
|
1069
|
-
|
1070
|
-
|
1071
|
-
|
1072
|
-
|
1073
|
-
|
1074
|
-
|
1075
|
-
|
1076
|
-
|
1077
|
-
|
1090
|
+
if (data.mediaType !== 'share' || !_this.shareCAEventSentStatus.transmitStart) {
|
1091
|
+
// @ts-ignore
|
1092
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
1093
|
+
name: 'client.media.tx.start',
|
1094
|
+
payload: {
|
1095
|
+
mediaType: data.mediaType,
|
1096
|
+
shareInstanceId: data.mediaType === 'share' ? _this.localShareInstanceId : undefined
|
1097
|
+
},
|
1098
|
+
options: {
|
1099
|
+
meetingId: _this.id
|
1100
|
+
}
|
1101
|
+
});
|
1102
|
+
if (data.mediaType === 'share') {
|
1103
|
+
_this.shareCAEventSentStatus.transmitStart = true;
|
1078
1104
|
}
|
1079
|
-
}
|
1105
|
+
}
|
1080
1106
|
});
|
1081
1107
|
_this.statsAnalyzer.on(_internalMediaCore.StatsAnalyzerEventNames.LOCAL_MEDIA_STOPPED, function (data) {
|
1082
|
-
|
1083
|
-
|
1084
|
-
|
1085
|
-
|
1086
|
-
|
1087
|
-
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1108
|
+
if (data.mediaType !== 'share' || !_this.shareCAEventSentStatus.transmitStop) {
|
1109
|
+
// @ts-ignore
|
1110
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
1111
|
+
name: 'client.media.tx.stop',
|
1112
|
+
payload: {
|
1113
|
+
mediaType: data.mediaType,
|
1114
|
+
shareInstanceId: data.mediaType === 'share' ? _this.localShareInstanceId : undefined
|
1115
|
+
},
|
1116
|
+
options: {
|
1117
|
+
meetingId: _this.id
|
1118
|
+
}
|
1119
|
+
});
|
1120
|
+
if (data.mediaType === 'share') {
|
1121
|
+
_this.shareCAEventSentStatus.transmitStop = true;
|
1091
1122
|
}
|
1092
|
-
}
|
1123
|
+
}
|
1093
1124
|
});
|
1094
1125
|
_this.statsAnalyzer.on(_internalMediaCore.StatsAnalyzerEventNames.REMOTE_MEDIA_STARTED, function (data) {
|
1095
1126
|
_triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
|
1096
1127
|
file: 'meeting/index',
|
1097
1128
|
function: 'addMedia'
|
1098
1129
|
}, _constants.EVENT_TRIGGERS.MEETING_MEDIA_REMOTE_STARTED, data);
|
1099
|
-
|
1100
|
-
_this.webex.internal.newMetrics.submitClientEvent({
|
1101
|
-
name: 'client.media.rx.start',
|
1102
|
-
payload: {
|
1103
|
-
mediaType: data.mediaType,
|
1104
|
-
shareInstanceId: data.mediaType === 'share' ? _this.remoteShareInstanceId : undefined
|
1105
|
-
},
|
1106
|
-
options: {
|
1107
|
-
meetingId: _this.id
|
1108
|
-
}
|
1109
|
-
});
|
1110
|
-
if (data.mediaType === 'share') {
|
1130
|
+
if (data.mediaType !== 'share' || !_this.shareCAEventSentStatus.receiveStart) {
|
1111
1131
|
// @ts-ignore
|
1112
1132
|
_this.webex.internal.newMetrics.submitClientEvent({
|
1113
|
-
name: 'client.media.
|
1133
|
+
name: 'client.media.rx.start',
|
1114
1134
|
payload: {
|
1115
|
-
mediaType:
|
1116
|
-
shareInstanceId: _this.remoteShareInstanceId
|
1135
|
+
mediaType: data.mediaType,
|
1136
|
+
shareInstanceId: data.mediaType === 'share' ? _this.remoteShareInstanceId : undefined
|
1117
1137
|
},
|
1118
1138
|
options: {
|
1119
1139
|
meetingId: _this.id
|
1120
1140
|
}
|
1121
1141
|
});
|
1142
|
+
if (data.mediaType === 'share') {
|
1143
|
+
// @ts-ignore
|
1144
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
1145
|
+
name: 'client.media.render.start',
|
1146
|
+
payload: {
|
1147
|
+
mediaType: 'share',
|
1148
|
+
shareInstanceId: _this.remoteShareInstanceId
|
1149
|
+
},
|
1150
|
+
options: {
|
1151
|
+
meetingId: _this.id
|
1152
|
+
}
|
1153
|
+
});
|
1154
|
+
_this.shareCAEventSentStatus.receiveStart = true;
|
1155
|
+
}
|
1122
1156
|
}
|
1123
1157
|
});
|
1124
1158
|
_this.statsAnalyzer.on(_internalMediaCore.StatsAnalyzerEventNames.REMOTE_MEDIA_STOPPED, function (data) {
|
1125
|
-
|
1126
|
-
_this.webex.internal.newMetrics.submitClientEvent({
|
1127
|
-
name: 'client.media.rx.stop',
|
1128
|
-
payload: {
|
1129
|
-
mediaType: data.mediaType,
|
1130
|
-
shareInstanceId: data.mediaType === 'share' ? _this.remoteShareInstanceId : undefined
|
1131
|
-
},
|
1132
|
-
options: {
|
1133
|
-
meetingId: _this.id
|
1134
|
-
}
|
1135
|
-
});
|
1136
|
-
if (data.mediaType === 'share') {
|
1159
|
+
if (data.mediaType !== 'share' || !_this.shareCAEventSentStatus.receiveStop) {
|
1137
1160
|
// @ts-ignore
|
1138
1161
|
_this.webex.internal.newMetrics.submitClientEvent({
|
1139
|
-
name: 'client.media.
|
1162
|
+
name: 'client.media.rx.stop',
|
1140
1163
|
payload: {
|
1141
|
-
mediaType:
|
1142
|
-
shareInstanceId: _this.remoteShareInstanceId
|
1164
|
+
mediaType: data.mediaType,
|
1165
|
+
shareInstanceId: data.mediaType === 'share' ? _this.remoteShareInstanceId : undefined
|
1143
1166
|
},
|
1144
1167
|
options: {
|
1145
1168
|
meetingId: _this.id
|
1146
1169
|
}
|
1147
1170
|
});
|
1171
|
+
if (data.mediaType === 'share') {
|
1172
|
+
// @ts-ignore
|
1173
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
1174
|
+
name: 'client.media.render.stop',
|
1175
|
+
payload: {
|
1176
|
+
mediaType: 'share',
|
1177
|
+
shareInstanceId: _this.remoteShareInstanceId
|
1178
|
+
},
|
1179
|
+
options: {
|
1180
|
+
meetingId: _this.id
|
1181
|
+
}
|
1182
|
+
});
|
1183
|
+
_this.shareCAEventSentStatus.receiveStop = true;
|
1184
|
+
}
|
1148
1185
|
}
|
1149
1186
|
});
|
1150
1187
|
});
|
@@ -1282,8 +1319,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1282
1319
|
* @returns {undefined}
|
1283
1320
|
*/
|
1284
1321
|
(0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleShareVideoStreamMuteStateChange", function (muted) {
|
1285
|
-
var _this$
|
1322
|
+
var _this$mediaProperties3, _this$mediaProperties4, _this$statsAnalyzer;
|
1286
1323
|
_loggerProxy.default.logger.log("Meeting:index#handleShareVideoStreamMuteStateChange --> Share video stream mute state changed to muted ".concat(muted));
|
1324
|
+
var shareVideoStreamSettings = (_this$mediaProperties3 = _this.mediaProperties) === null || _this$mediaProperties3 === void 0 ? void 0 : (_this$mediaProperties4 = _this$mediaProperties3.shareVideoStream) === null || _this$mediaProperties4 === void 0 ? void 0 : _this$mediaProperties4.getSettings();
|
1287
1325
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE, {
|
1288
1326
|
correlationId: _this.correlationId,
|
1289
1327
|
muted: muted,
|
@@ -1292,8 +1330,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
1292
1330
|
// SDK to TypeScript 5, which may affect other packages, use bracket notation for now, since
|
1293
1331
|
// all we're doing here is adding metrics.
|
1294
1332
|
// eslint-disable-next-line dot-notation
|
1295
|
-
displaySurface:
|
1296
|
-
isMultistream: _this.isMultistream
|
1333
|
+
displaySurface: shareVideoStreamSettings === null || shareVideoStreamSettings === void 0 ? void 0 : shareVideoStreamSettings['displaySurface'],
|
1334
|
+
isMultistream: _this.isMultistream,
|
1335
|
+
frameRate: shareVideoStreamSettings === null || shareVideoStreamSettings === void 0 ? void 0 : shareVideoStreamSettings.frameRate
|
1297
1336
|
});
|
1298
1337
|
});
|
1299
1338
|
/**
|
@@ -2084,6 +2123,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
2084
2123
|
*/
|
2085
2124
|
_this.remoteShareInstanceId = null;
|
2086
2125
|
|
2126
|
+
/**
|
2127
|
+
* Status used for ensuring we do not oversend metrics
|
2128
|
+
* @instance
|
2129
|
+
* @private
|
2130
|
+
* @memberof Meeting
|
2131
|
+
*/
|
2132
|
+
_this.shareCAEventSentStatus = {
|
2133
|
+
transmitStart: false,
|
2134
|
+
transmitStop: false,
|
2135
|
+
receiveStart: false,
|
2136
|
+
receiveStop: false
|
2137
|
+
};
|
2138
|
+
|
2087
2139
|
/**
|
2088
2140
|
* The class that helps to control recording functions: start, stop, pause, resume, etc
|
2089
2141
|
* @instance
|
@@ -2303,6 +2355,44 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
2303
2355
|
this.callStateForMetrics.correlationId = correlationId;
|
2304
2356
|
}
|
2305
2357
|
|
2358
|
+
/**
|
2359
|
+
* Getter - Returns callStateForMetrics.userNameInput
|
2360
|
+
* @returns {string}
|
2361
|
+
*/
|
2362
|
+
}, {
|
2363
|
+
key: "userNameInput",
|
2364
|
+
get: function get() {
|
2365
|
+
var _this$callStateForMet;
|
2366
|
+
return (_this$callStateForMet = this.callStateForMetrics) === null || _this$callStateForMet === void 0 ? void 0 : _this$callStateForMet.userNameInput;
|
2367
|
+
}
|
2368
|
+
|
2369
|
+
/**
|
2370
|
+
* Setter - sets callStateForMetrics.userNameInput
|
2371
|
+
* @param {string} userNameInput
|
2372
|
+
*/,
|
2373
|
+
set: function set(userNameInput) {
|
2374
|
+
this.callStateForMetrics.userNameInput = userNameInput;
|
2375
|
+
}
|
2376
|
+
|
2377
|
+
/**
|
2378
|
+
* Getter - Returns callStateForMetrics.emailInput
|
2379
|
+
* @returns {string}
|
2380
|
+
*/
|
2381
|
+
}, {
|
2382
|
+
key: "emailInput",
|
2383
|
+
get: function get() {
|
2384
|
+
var _this$callStateForMet2;
|
2385
|
+
return (_this$callStateForMet2 = this.callStateForMetrics) === null || _this$callStateForMet2 === void 0 ? void 0 : _this$callStateForMet2.emailInput;
|
2386
|
+
}
|
2387
|
+
|
2388
|
+
/**
|
2389
|
+
* Setter - sets callStateForMetrics.emailInput
|
2390
|
+
* @param {string} emailInput
|
2391
|
+
*/,
|
2392
|
+
set: function set(emailInput) {
|
2393
|
+
this.callStateForMetrics.emailInput = emailInput;
|
2394
|
+
}
|
2395
|
+
|
2306
2396
|
/**
|
2307
2397
|
* Getter - Returns callStateForMetrics.sessionCorrelationId
|
2308
2398
|
* @returns {string}
|
@@ -2332,6 +2422,31 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
2332
2422
|
return (0, _classPrivateFieldGet2.default)(this, _isoLocalClientMeetingJoinTime);
|
2333
2423
|
}
|
2334
2424
|
|
2425
|
+
/**
|
2426
|
+
* Setter - sets isoLocalClientMeetingJoinTime
|
2427
|
+
* This will be set once on meeting join, and not updated again
|
2428
|
+
* this will always produce an ISO string
|
2429
|
+
* If the iso string is invalid, it will fallback to the current system time
|
2430
|
+
* @param {string | undefined} time
|
2431
|
+
*/,
|
2432
|
+
set: function set(time) {
|
2433
|
+
var fallback = new Date().toISOString();
|
2434
|
+
if (!time) {
|
2435
|
+
(0, _classPrivateFieldSet2.default)(this, _isoLocalClientMeetingJoinTime, fallback);
|
2436
|
+
} else {
|
2437
|
+
var date = new Date(time);
|
2438
|
+
|
2439
|
+
// Check if the date is valid
|
2440
|
+
if ((0, _isNan.default)(date.getTime())) {
|
2441
|
+
_loggerProxy.default.logger.info( // @ts-ignore
|
2442
|
+
"Meeting:index#isoLocalClientMeetingJoinTime --> Invalid date provided: ".concat(time, ". Falling back to system clock."));
|
2443
|
+
(0, _classPrivateFieldSet2.default)(this, _isoLocalClientMeetingJoinTime, fallback);
|
2444
|
+
} else {
|
2445
|
+
(0, _classPrivateFieldSet2.default)(this, _isoLocalClientMeetingJoinTime, date.toISOString());
|
2446
|
+
}
|
2447
|
+
}
|
2448
|
+
}
|
2449
|
+
|
2335
2450
|
/**
|
2336
2451
|
* Set meeting info and trigger `MEETING_INFO_AVAILABLE` event
|
2337
2452
|
* @param {any} info
|
@@ -3391,6 +3506,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3391
3506
|
state: state
|
3392
3507
|
});
|
3393
3508
|
});
|
3509
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_ANNOTATION_CHANGED, function (_ref27) {
|
3510
|
+
var state = _ref27.state;
|
3511
|
+
_triggerProxy.default.trigger(_this14, {
|
3512
|
+
file: 'meeting/index',
|
3513
|
+
function: 'setupLocusControlsListener'
|
3514
|
+
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_ANNOTATION_UPDATED, {
|
3515
|
+
state: state
|
3516
|
+
});
|
3517
|
+
});
|
3518
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.CONTROLS_REMOTE_DESKTOP_CONTROL_CHANGED, function (_ref28) {
|
3519
|
+
var state = _ref28.state;
|
3520
|
+
_triggerProxy.default.trigger(_this14, {
|
3521
|
+
file: 'meeting/index',
|
3522
|
+
function: 'setupLocusControlsListener'
|
3523
|
+
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_REMOTE_DESKTOP_CONTROL_UPDATED, {
|
3524
|
+
state: state
|
3525
|
+
});
|
3526
|
+
});
|
3394
3527
|
}
|
3395
3528
|
|
3396
3529
|
/**
|
@@ -3430,7 +3563,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3430
3563
|
var _this15 = this;
|
3431
3564
|
// Will get triggered on local and remote share
|
3432
3565
|
this.locusInfo.on(_constants.EVENTS.LOCUS_INFO_UPDATE_MEDIA_SHARES, /*#__PURE__*/function () {
|
3433
|
-
var
|
3566
|
+
var _ref29 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(payload) {
|
3434
3567
|
var _payload$previous, _payload$previous2;
|
3435
3568
|
var _payload$current, contentShare, whiteboardShare, previousContentShare, previousWhiteboardShare, newShareStatus, _this15$locusInfo, _this15$locusInfo$inf, _this15$webinar, oldShareStatus, sendStartedSharingRemote, _this15$mediaProperti;
|
3436
3569
|
return _regenerator.default.wrap(function _callee8$(_context8) {
|
@@ -3516,6 +3649,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3516
3649
|
case 26:
|
3517
3650
|
sendStartedSharingRemote = function sendStartedSharingRemote() {
|
3518
3651
|
_this15.remoteShareInstanceId = contentShare.shareInstanceId;
|
3652
|
+
_this15.shareCAEventSentStatus.receiveStart = false;
|
3653
|
+
_this15.shareCAEventSentStatus.receiveStop = false;
|
3519
3654
|
_triggerProxy.default.trigger(_this15, {
|
3520
3655
|
file: 'meetings/index',
|
3521
3656
|
function: 'remoteShare'
|
@@ -3589,6 +3724,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3589
3724
|
// if we got here, then some remote participant has stolen
|
3590
3725
|
// the presentation from another remote participant
|
3591
3726
|
_this15.remoteShareInstanceId = contentShare.shareInstanceId;
|
3727
|
+
_this15.shareCAEventSentStatus.receiveStart = false;
|
3728
|
+
_this15.shareCAEventSentStatus.receiveStop = false;
|
3592
3729
|
_triggerProxy.default.trigger(_this15, {
|
3593
3730
|
file: 'meetings/index',
|
3594
3731
|
function: 'remoteShare'
|
@@ -3629,7 +3766,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3629
3766
|
}, _callee8, null, [[27,, 31, 34]]);
|
3630
3767
|
}));
|
3631
3768
|
return function (_x8) {
|
3632
|
-
return
|
3769
|
+
return _ref29.apply(this, arguments);
|
3633
3770
|
};
|
3634
3771
|
}());
|
3635
3772
|
}
|
@@ -3743,8 +3880,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3743
3880
|
});
|
3744
3881
|
}
|
3745
3882
|
});
|
3746
|
-
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, function (
|
3747
|
-
var isInitializing =
|
3883
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, function (_ref30) {
|
3884
|
+
var isInitializing = _ref30.isInitializing;
|
3748
3885
|
_this19.updateMeetingActions();
|
3749
3886
|
_this19.recordingController.setDisplayHints(_this19.userDisplayHints);
|
3750
3887
|
_this19.recordingController.setUserPolicy(_this19.selfUserPolicies);
|
@@ -3882,7 +4019,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3882
4019
|
_this21.updateLLMConnection();
|
3883
4020
|
});
|
3884
4021
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ADMITTED_GUEST, /*#__PURE__*/function () {
|
3885
|
-
var
|
4022
|
+
var _ref31 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(payload) {
|
3886
4023
|
var _this21$rtcMetrics;
|
3887
4024
|
return _regenerator.default.wrap(function _callee9$(_context9) {
|
3888
4025
|
while (1) switch (_context9.prev = _context9.next) {
|
@@ -3916,7 +4053,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
3916
4053
|
}, _callee9);
|
3917
4054
|
}));
|
3918
4055
|
return function (_x9) {
|
3919
|
-
return
|
4056
|
+
return _ref31.apply(this, arguments);
|
3920
4057
|
};
|
3921
4058
|
}());
|
3922
4059
|
|
@@ -4035,7 +4172,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4035
4172
|
}
|
4036
4173
|
});
|
4037
4174
|
this.locusInfo.on(_constants.EVENTS.DESTROY_MEETING, /*#__PURE__*/function () {
|
4038
|
-
var
|
4175
|
+
var _ref32 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(payload) {
|
4039
4176
|
return _regenerator.default.wrap(function _callee10$(_context10) {
|
4040
4177
|
while (1) switch (_context10.prev = _context10.next) {
|
4041
4178
|
case 0:
|
@@ -4095,7 +4232,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4095
4232
|
}, _callee10, null, [[8, 14]]);
|
4096
4233
|
}));
|
4097
4234
|
return function (_x10) {
|
4098
|
-
return
|
4235
|
+
return _ref32.apply(this, arguments);
|
4099
4236
|
};
|
4100
4237
|
}());
|
4101
4238
|
}
|
@@ -4197,6 +4334,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4197
4334
|
key: "beRightBack",
|
4198
4335
|
value: (function () {
|
4199
4336
|
var _beRightBack = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(enabled) {
|
4337
|
+
var _this24 = this;
|
4200
4338
|
var errorMessage, error, _errorMessage, _error;
|
4201
4339
|
return _regenerator.default.wrap(function _callee11$(_context11) {
|
4202
4340
|
while (1) switch (_context11.prev = _context11.next) {
|
@@ -4219,7 +4357,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4219
4357
|
_loggerProxy.default.logger.error(_error);
|
4220
4358
|
return _context11.abrupt("return", _promise.default.reject(_error));
|
4221
4359
|
case 10:
|
4222
|
-
return _context11.abrupt("return", this.brbState.enable(enabled, this.sendSlotManager))
|
4360
|
+
return _context11.abrupt("return", this.brbState.enable(enabled, this.sendSlotManager).then(function () {
|
4361
|
+
if (_this24.audio && enabled) {
|
4362
|
+
// locus mutes the participant with brb enabled request,
|
4363
|
+
// so we need to explicitly update remote mute for correct logic flow
|
4364
|
+
_this24.audio.handleServerRemoteMuteUpdate(_this24, enabled);
|
4365
|
+
}
|
4366
|
+
}));
|
4223
4367
|
case 11:
|
4224
4368
|
case "end":
|
4225
4369
|
return _context11.stop();
|
@@ -4405,7 +4549,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4405
4549
|
canAdmitParticipant: _util2.default.canAdmitParticipant(this.userDisplayHints),
|
4406
4550
|
canLock: _util2.default.canUserLock(this.userDisplayHints),
|
4407
4551
|
canUnlock: _util2.default.canUserUnlock(this.userDisplayHints),
|
4408
|
-
canShareWhiteBoard: _util2.default.canShareWhiteBoard(this.userDisplayHints),
|
4552
|
+
canShareWhiteBoard: _util2.default.canShareWhiteBoard(this.userDisplayHints, this.selfUserPolicies),
|
4409
4553
|
canSetDisallowUnmute: _util5.default.canSetDisallowUnmute(this.userDisplayHints),
|
4410
4554
|
canUnsetDisallowUnmute: _util5.default.canUnsetDisallowUnmute(this.userDisplayHints),
|
4411
4555
|
canSetMuteOnEntry: _util5.default.canSetMuteOnEntry(this.userDisplayHints),
|
@@ -4435,6 +4579,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4435
4579
|
canSelectSpokenLanguages: _util2.default.canSelectSpokenLanguages(this.userDisplayHints),
|
4436
4580
|
waitingForOthersToJoin: _util2.default.waitingForOthersToJoin(this.userDisplayHints),
|
4437
4581
|
canSendReactions: _util2.default.canSendReactions(this.inMeetingActions.canSendReactions, this.userDisplayHints),
|
4582
|
+
requiresPostMeetingDataConsentPrompt: _util2.default.requiresPostMeetingDataConsentPrompt(this.userDisplayHints),
|
4438
4583
|
canManageBreakout: _util2.default.canManageBreakout(this.userDisplayHints),
|
4439
4584
|
canStartBreakout: _util2.default.canStartBreakout(this.userDisplayHints),
|
4440
4585
|
canBroadcastMessageToBreakout: _util2.default.canBroadcastMessageToBreakout(this.userDisplayHints, this.selfUserPolicies),
|
@@ -4610,6 +4755,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4610
4755
|
canAnnotate: _util5.default.hasPolicies({
|
4611
4756
|
requiredPolicies: [_constants.SELF_POLICY.SUPPORT_ANNOTATION],
|
4612
4757
|
policies: this.selfUserPolicies
|
4758
|
+
}),
|
4759
|
+
canEnableAnnotation: _util5.default.hasHints({
|
4760
|
+
requiredHints: [_constants.DISPLAY_HINTS.ENABLE_ANNOTATION_MEETING_OPTION],
|
4761
|
+
displayHints: this.userDisplayHints
|
4762
|
+
}),
|
4763
|
+
canDisableAnnotation: _util5.default.hasHints({
|
4764
|
+
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_ANNOTATION_MEETING_OPTION],
|
4765
|
+
displayHints: this.userDisplayHints
|
4766
|
+
}),
|
4767
|
+
canEnableRemoteDesktopControl: _util5.default.hasHints({
|
4768
|
+
requiredHints: [_constants.DISPLAY_HINTS.ENABLE_RDC_MEETING_OPTION],
|
4769
|
+
displayHints: this.userDisplayHints
|
4770
|
+
}),
|
4771
|
+
canDisableRemoteDesktopControl: _util5.default.hasHints({
|
4772
|
+
requiredHints: [_constants.DISPLAY_HINTS.DISABLE_RDC_MEETING_OPTION],
|
4773
|
+
displayHints: this.userDisplayHints
|
4613
4774
|
})
|
4614
4775
|
}) || changed;
|
4615
4776
|
}
|
@@ -4714,7 +4875,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4714
4875
|
}, {
|
4715
4876
|
key: "setLogUploadTimer",
|
4716
4877
|
value: function setLogUploadTimer() {
|
4717
|
-
var
|
4878
|
+
var _this25 = this;
|
4718
4879
|
// start with short timeouts and increase them later on so in case users have very long multi-hour meetings we don't get too fragmented logs
|
4719
4880
|
var LOG_UPLOAD_INTERVALS = [0.1, 15, 30, 60]; // in minutes
|
4720
4881
|
|
@@ -4725,15 +4886,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4725
4886
|
this.logUploadIntervalIndex += 1;
|
4726
4887
|
}
|
4727
4888
|
this.uploadLogsTimer = (0, _commonTimers.safeSetTimeout)(function () {
|
4728
|
-
|
4729
|
-
|
4889
|
+
_this25.uploadLogsTimer = undefined;
|
4890
|
+
_this25.uploadLogs();
|
4730
4891
|
|
4731
4892
|
// just as an extra precaution, to avoid uploading logs forever in case something goes wrong
|
4732
4893
|
// and the page remains opened, we stop it if there is no media connection
|
4733
|
-
if (!
|
4894
|
+
if (!_this25.mediaProperties.webrtcMediaConnection) {
|
4734
4895
|
return;
|
4735
4896
|
}
|
4736
|
-
|
4897
|
+
_this25.setLogUploadTimer();
|
4737
4898
|
}, delay);
|
4738
4899
|
}
|
4739
4900
|
|
@@ -4800,7 +4961,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4800
4961
|
}, {
|
4801
4962
|
key: "closeRemoteStreams",
|
4802
4963
|
value: function closeRemoteStreams() {
|
4803
|
-
var
|
4964
|
+
var _this26 = this;
|
4804
4965
|
var _this$mediaProperties6 = this.mediaProperties,
|
4805
4966
|
remoteAudioStream = _this$mediaProperties6.remoteAudioStream,
|
4806
4967
|
remoteVideoStream = _this$mediaProperties6.remoteVideoStream,
|
@@ -4814,7 +4975,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
4814
4975
|
*/
|
4815
4976
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
4816
4977
|
var triggerMediaStoppedEvent = function triggerMediaStoppedEvent(mediaType) {
|
4817
|
-
_triggerProxy.default.trigger(
|
4978
|
+
_triggerProxy.default.trigger(_this26, {
|
4818
4979
|
file: 'meeting/index',
|
4819
4980
|
function: 'closeRemoteStreams'
|
4820
4981
|
}, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
|
@@ -5122,7 +5283,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5122
5283
|
}, {
|
5123
5284
|
key: "setMercuryListener",
|
5124
5285
|
value: function setMercuryListener() {
|
5125
|
-
var
|
5286
|
+
var _this27 = this;
|
5126
5287
|
// Client will have a socket manager and handle reconnecting to mercury, when we reconnect to mercury
|
5127
5288
|
// if the meeting has active peer connections, it should try to reconnect.
|
5128
5289
|
// @ts-ignore
|
@@ -5130,33 +5291,33 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5130
5291
|
_loggerProxy.default.logger.info('Meeting:index#setMercuryListener --> Web socket online');
|
5131
5292
|
|
5132
5293
|
// Only send restore event when it was disconnected before and for connected later
|
5133
|
-
if (!
|
5294
|
+
if (!_this27.hasWebsocketConnected) {
|
5134
5295
|
// @ts-ignore
|
5135
|
-
|
5296
|
+
_this27.webex.internal.newMetrics.submitClientEvent({
|
5136
5297
|
name: 'client.mercury.connection.restored',
|
5137
5298
|
options: {
|
5138
|
-
meetingId:
|
5299
|
+
meetingId: _this27.id
|
5139
5300
|
}
|
5140
5301
|
});
|
5141
5302
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_RESTORED, {
|
5142
|
-
correlation_id:
|
5303
|
+
correlation_id: _this27.correlationId
|
5143
5304
|
});
|
5144
5305
|
}
|
5145
|
-
|
5306
|
+
_this27.hasWebsocketConnected = true;
|
5146
5307
|
});
|
5147
5308
|
|
5148
5309
|
// @ts-ignore
|
5149
5310
|
this.webex.internal.mercury.on(_constants.OFFLINE, function () {
|
5150
5311
|
_loggerProxy.default.logger.error('Meeting:index#setMercuryListener --> Web socket offline');
|
5151
5312
|
// @ts-ignore
|
5152
|
-
|
5313
|
+
_this27.webex.internal.newMetrics.submitClientEvent({
|
5153
5314
|
name: 'client.mercury.connection.lost',
|
5154
5315
|
options: {
|
5155
|
-
meetingId:
|
5316
|
+
meetingId: _this27.id
|
5156
5317
|
}
|
5157
5318
|
});
|
5158
5319
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_FAILURE, {
|
5159
|
-
correlation_id:
|
5320
|
+
correlation_id: _this27.correlationId
|
5160
5321
|
});
|
5161
5322
|
});
|
5162
5323
|
}
|
@@ -5263,7 +5424,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5263
5424
|
}, {
|
5264
5425
|
key: "muteAudio",
|
5265
5426
|
value: function muteAudio() {
|
5266
|
-
var
|
5427
|
+
var _this28 = this;
|
5267
5428
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5268
5429
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5269
5430
|
}
|
@@ -5279,22 +5440,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5279
5440
|
|
5280
5441
|
// First, stop sending the local audio media
|
5281
5442
|
return logRequest(this.audio.handleClientRequest(this, true).then(function () {
|
5282
|
-
_util2.default.handleAudioLogging(
|
5443
|
+
_util2.default.handleAudioLogging(_this28.mediaProperties.audioStream);
|
5283
5444
|
// @ts-ignore
|
5284
|
-
|
5445
|
+
_this28.webex.internal.newMetrics.submitClientEvent({
|
5285
5446
|
name: 'client.muted',
|
5286
5447
|
payload: {
|
5287
5448
|
trigger: 'user-interaction',
|
5288
5449
|
mediaType: 'audio'
|
5289
5450
|
},
|
5290
5451
|
options: {
|
5291
|
-
meetingId:
|
5452
|
+
meetingId: _this28.id
|
5292
5453
|
}
|
5293
5454
|
});
|
5294
5455
|
}).catch(function (error) {
|
5295
5456
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_AUDIO_FAILURE, {
|
5296
|
-
correlation_id:
|
5297
|
-
locus_id:
|
5457
|
+
correlation_id: _this28.correlationId,
|
5458
|
+
locus_id: _this28.locusUrl.split('/').pop(),
|
5298
5459
|
reason: error.message,
|
5299
5460
|
stack: error.stack
|
5300
5461
|
});
|
@@ -5313,7 +5474,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5313
5474
|
}, {
|
5314
5475
|
key: "unmuteAudio",
|
5315
5476
|
value: function unmuteAudio() {
|
5316
|
-
var
|
5477
|
+
var _this29 = this;
|
5317
5478
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5318
5479
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5319
5480
|
}
|
@@ -5329,22 +5490,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5329
5490
|
|
5330
5491
|
// First, send the control to unmute the participant on the server
|
5331
5492
|
return logRequest(this.audio.handleClientRequest(this, false).then(function () {
|
5332
|
-
_util2.default.handleAudioLogging(
|
5493
|
+
_util2.default.handleAudioLogging(_this29.mediaProperties.audioStream);
|
5333
5494
|
// @ts-ignore
|
5334
|
-
|
5495
|
+
_this29.webex.internal.newMetrics.submitClientEvent({
|
5335
5496
|
name: 'client.unmuted',
|
5336
5497
|
payload: {
|
5337
5498
|
trigger: 'user-interaction',
|
5338
5499
|
mediaType: 'audio'
|
5339
5500
|
},
|
5340
5501
|
options: {
|
5341
|
-
meetingId:
|
5502
|
+
meetingId: _this29.id
|
5342
5503
|
}
|
5343
5504
|
});
|
5344
5505
|
}).catch(function (error) {
|
5345
5506
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_AUDIO_FAILURE, {
|
5346
|
-
correlation_id:
|
5347
|
-
locus_id:
|
5507
|
+
correlation_id: _this29.correlationId,
|
5508
|
+
locus_id: _this29.locusUrl.split('/').pop(),
|
5348
5509
|
reason: error.message,
|
5349
5510
|
stack: error.stack
|
5350
5511
|
});
|
@@ -5363,7 +5524,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5363
5524
|
}, {
|
5364
5525
|
key: "muteVideo",
|
5365
5526
|
value: function muteVideo() {
|
5366
|
-
var
|
5527
|
+
var _this30 = this;
|
5367
5528
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5368
5529
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5369
5530
|
}
|
@@ -5377,22 +5538,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5377
5538
|
return _promise.default.reject(new _parameter.default('no video control associated to the meeting'));
|
5378
5539
|
}
|
5379
5540
|
return logRequest(this.video.handleClientRequest(this, true).then(function () {
|
5380
|
-
_util2.default.handleVideoLogging(
|
5541
|
+
_util2.default.handleVideoLogging(_this30.mediaProperties.videoStream);
|
5381
5542
|
// @ts-ignore
|
5382
|
-
|
5543
|
+
_this30.webex.internal.newMetrics.submitClientEvent({
|
5383
5544
|
name: 'client.muted',
|
5384
5545
|
payload: {
|
5385
5546
|
trigger: 'user-interaction',
|
5386
5547
|
mediaType: 'video'
|
5387
5548
|
},
|
5388
5549
|
options: {
|
5389
|
-
meetingId:
|
5550
|
+
meetingId: _this30.id
|
5390
5551
|
}
|
5391
5552
|
});
|
5392
5553
|
}).catch(function (error) {
|
5393
5554
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_VIDEO_FAILURE, {
|
5394
|
-
correlation_id:
|
5395
|
-
locus_id:
|
5555
|
+
correlation_id: _this30.correlationId,
|
5556
|
+
locus_id: _this30.locusUrl.split('/').pop(),
|
5396
5557
|
reason: error.message,
|
5397
5558
|
stack: error.stack
|
5398
5559
|
});
|
@@ -5411,7 +5572,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5411
5572
|
}, {
|
5412
5573
|
key: "unmuteVideo",
|
5413
5574
|
value: function unmuteVideo() {
|
5414
|
-
var
|
5575
|
+
var _this31 = this;
|
5415
5576
|
if (!_util2.default.isUserInJoinedState(this.locusInfo)) {
|
5416
5577
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
5417
5578
|
}
|
@@ -5425,22 +5586,22 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5425
5586
|
return _promise.default.reject(new _parameter.default('no audio control associated to the meeting'));
|
5426
5587
|
}
|
5427
5588
|
return logRequest(this.video.handleClientRequest(this, false).then(function () {
|
5428
|
-
_util2.default.handleVideoLogging(
|
5589
|
+
_util2.default.handleVideoLogging(_this31.mediaProperties.videoStream);
|
5429
5590
|
// @ts-ignore
|
5430
|
-
|
5591
|
+
_this31.webex.internal.newMetrics.submitClientEvent({
|
5431
5592
|
name: 'client.unmuted',
|
5432
5593
|
payload: {
|
5433
5594
|
trigger: 'user-interaction',
|
5434
5595
|
mediaType: 'video'
|
5435
5596
|
},
|
5436
5597
|
options: {
|
5437
|
-
meetingId:
|
5598
|
+
meetingId: _this31.id
|
5438
5599
|
}
|
5439
5600
|
});
|
5440
5601
|
}).catch(function (error) {
|
5441
5602
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_VIDEO_FAILURE, {
|
5442
|
-
correlation_id:
|
5443
|
-
locus_id:
|
5603
|
+
correlation_id: _this31.correlationId,
|
5604
|
+
locus_id: _this31.locusUrl.split('/').pop(),
|
5444
5605
|
reason: error.message,
|
5445
5606
|
stack: error.stack
|
5446
5607
|
});
|
@@ -5470,7 +5631,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5470
5631
|
key: "joinWithMedia",
|
5471
5632
|
value: (function () {
|
5472
5633
|
var _joinWithMedia = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
|
5473
|
-
var
|
5634
|
+
var _this32 = this;
|
5474
5635
|
var options,
|
5475
5636
|
mediaOptions,
|
5476
5637
|
_options$joinOptions,
|
@@ -5553,7 +5714,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5553
5714
|
case 35:
|
5554
5715
|
_context16.next = 37;
|
5555
5716
|
return this.addMediaInternal(function () {
|
5556
|
-
return
|
5717
|
+
return _this32.joinWithMediaRetryInfo.isRetry ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
5557
5718
|
}, turnServerInfo, forceTurnDiscovery, mediaOptions);
|
5558
5719
|
case 37:
|
5559
5720
|
mediaResponse = _context16.sent;
|
@@ -5648,7 +5809,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5648
5809
|
}, {
|
5649
5810
|
key: "reconnect",
|
5650
5811
|
value: function reconnect(options) {
|
5651
|
-
var
|
5812
|
+
var _this33 = this;
|
5652
5813
|
_loggerProxy.default.logger.log("Meeting:index#reconnect --> attempting to reconnect meeting ".concat(this.id));
|
5653
5814
|
if (!this.reconnectionManager || !this.reconnectionManager.reconnect) {
|
5654
5815
|
return _promise.default.reject(new _parameter.default('Cannot reconnect, ReconnectionManager must first be defined.'));
|
@@ -5664,10 +5825,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5664
5825
|
while (1) switch (_context17.prev = _context17.next) {
|
5665
5826
|
case 0:
|
5666
5827
|
_context17.next = 2;
|
5667
|
-
return
|
5828
|
+
return _this33.waitForRemoteSDPAnswer();
|
5668
5829
|
case 2:
|
5669
5830
|
_context17.next = 4;
|
5670
|
-
return
|
5831
|
+
return _this33.waitForMediaConnectionConnected();
|
5671
5832
|
case 4:
|
5672
5833
|
case "end":
|
5673
5834
|
return _context17.stop();
|
@@ -5681,7 +5842,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5681
5842
|
return _promise.default.resolve();
|
5682
5843
|
}
|
5683
5844
|
_loggerProxy.default.logger.error('Meeting:index#reconnect --> Meeting reconnect failed', error);
|
5684
|
-
|
5845
|
+
_this33.uploadLogs({
|
5685
5846
|
file: 'meeting/index',
|
5686
5847
|
function: 'reconnect'
|
5687
5848
|
});
|
@@ -5728,19 +5889,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5728
5889
|
}, {
|
5729
5890
|
key: "setCaptionLanguage",
|
5730
5891
|
value: function setCaptionLanguage(language) {
|
5731
|
-
var
|
5892
|
+
var _this34 = this;
|
5732
5893
|
return new _promise.default(function (resolve, reject) {
|
5733
|
-
if (!
|
5894
|
+
if (!_this34.isTranscriptionSupported()) {
|
5734
5895
|
_loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
|
5735
5896
|
reject(new Error('Webex Assistant is not enabled/supported'));
|
5736
5897
|
}
|
5737
5898
|
try {
|
5738
5899
|
var voiceaListenerCaptionUpdate = function voiceaListenerCaptionUpdate(payload) {
|
5739
5900
|
// @ts-ignore
|
5740
|
-
|
5901
|
+
_this34.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
|
5741
5902
|
var statusCode = payload.statusCode;
|
5742
5903
|
if (statusCode === 200) {
|
5743
|
-
|
5904
|
+
_this34.transcription.languageOptions = _objectSpread(_objectSpread({}, _this34.transcription.languageOptions), {}, {
|
5744
5905
|
currentCaptionLanguage: language
|
5745
5906
|
});
|
5746
5907
|
resolve(language);
|
@@ -5749,9 +5910,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5749
5910
|
}
|
5750
5911
|
};
|
5751
5912
|
// @ts-ignore
|
5752
|
-
|
5913
|
+
_this34.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, voiceaListenerCaptionUpdate);
|
5753
5914
|
// @ts-ignore
|
5754
|
-
|
5915
|
+
_this34.webex.internal.voicea.requestLanguage(language);
|
5755
5916
|
} catch (error) {
|
5756
5917
|
_loggerProxy.default.logger.error("Meeting:index#setCaptionLanguage --> ".concat(error));
|
5757
5918
|
reject(error);
|
@@ -5767,23 +5928,23 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5767
5928
|
}, {
|
5768
5929
|
key: "setSpokenLanguage",
|
5769
5930
|
value: function setSpokenLanguage(language) {
|
5770
|
-
var
|
5931
|
+
var _this35 = this;
|
5771
5932
|
return new _promise.default(function (resolve, reject) {
|
5772
|
-
if (!
|
5933
|
+
if (!_this35.isTranscriptionSupported()) {
|
5773
5934
|
_loggerProxy.default.logger.error('Meeting:index#setCaptionLanguage --> Webex Assistant is not enabled/supported');
|
5774
5935
|
reject(new Error('Webex Assistant is not enabled/supported'));
|
5775
5936
|
}
|
5776
|
-
if (
|
5937
|
+
if (_this35.getCurUserType() !== 'host') {
|
5777
5938
|
_loggerProxy.default.logger.error('Meeting:index#setSpokenLanguage --> Only host can set spoken language');
|
5778
5939
|
reject(new Error('Only host can set spoken language'));
|
5779
5940
|
}
|
5780
5941
|
try {
|
5781
5942
|
var voiceaListenerLanguageUpdate = function voiceaListenerLanguageUpdate(payload) {
|
5782
5943
|
// @ts-ignore
|
5783
|
-
|
5944
|
+
_this35.webex.internal.voicea.off(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
|
5784
5945
|
var languageCode = payload.languageCode;
|
5785
5946
|
if (languageCode) {
|
5786
|
-
|
5947
|
+
_this35.transcription.languageOptions = _objectSpread(_objectSpread({}, _this35.transcription.languageOptions), {}, {
|
5787
5948
|
currentSpokenLanguage: languageCode
|
5788
5949
|
});
|
5789
5950
|
resolve(languageCode);
|
@@ -5793,10 +5954,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5793
5954
|
};
|
5794
5955
|
|
5795
5956
|
// @ts-ignore
|
5796
|
-
|
5957
|
+
_this35.webex.internal.voicea.on(_internalPluginVoicea.EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, voiceaListenerLanguageUpdate);
|
5797
5958
|
|
5798
5959
|
// @ts-ignore
|
5799
|
-
|
5960
|
+
_this35.webex.internal.voicea.setSpokenLanguage(language);
|
5800
5961
|
} catch (error) {
|
5801
5962
|
_loggerProxy.default.logger.error("Meeting:index#setSpokenLanguage --> ".concat(error));
|
5802
5963
|
reject(error);
|
@@ -5919,7 +6080,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
5919
6080
|
*/
|
5920
6081
|
function () {
|
5921
6082
|
var _join = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
|
5922
|
-
var
|
6083
|
+
var _this36 = this;
|
5923
6084
|
var options,
|
5924
6085
|
errorMessage,
|
5925
6086
|
error,
|
@@ -6068,62 +6229,61 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6068
6229
|
return _context19.abrupt("return", _promise.default.reject(_context19.t0));
|
6069
6230
|
case 51:
|
6070
6231
|
return _context19.abrupt("return", _util2.default.joinMeetingOptions(this, options).then(function (join) {
|
6071
|
-
|
6072
|
-
|
6232
|
+
_this36.meetingFiniteStateMachine.join();
|
6233
|
+
_this36.setupLocusMediaRequest();
|
6073
6234
|
|
6074
6235
|
// @ts-ignore
|
6075
|
-
|
6076
|
-
(0, _classPrivateFieldSet2.default)(_this35, _isoLocalClientMeetingJoinTime, new Date().toISOString());
|
6236
|
+
_this36.webex.internal.device.meetingStarted();
|
6077
6237
|
_loggerProxy.default.logger.log('Meeting:index#join --> Success');
|
6078
6238
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
|
6079
|
-
correlation_id:
|
6239
|
+
correlation_id: _this36.correlationId
|
6080
6240
|
});
|
6081
6241
|
joinSuccess(join);
|
6082
|
-
|
6242
|
+
_this36.deferJoin = undefined;
|
6083
6243
|
return join;
|
6084
6244
|
}).catch(function (error) {
|
6085
|
-
var
|
6086
|
-
|
6245
|
+
var _this36$meetingInfo, _error$error;
|
6246
|
+
_this36.meetingFiniteStateMachine.fail(error);
|
6087
6247
|
_loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
|
6088
6248
|
|
6089
6249
|
// @ts-ignore
|
6090
|
-
|
6250
|
+
_this36.webex.internal.newMetrics.submitClientEvent({
|
6091
6251
|
name: 'client.locus.join.response',
|
6092
6252
|
payload: {
|
6093
6253
|
identifiers: {
|
6094
|
-
meetingLookupUrl: (
|
6254
|
+
meetingLookupUrl: (_this36$meetingInfo = _this36.meetingInfo) === null || _this36$meetingInfo === void 0 ? void 0 : _this36$meetingInfo.meetingLookupUrl
|
6095
6255
|
}
|
6096
6256
|
},
|
6097
6257
|
options: {
|
6098
|
-
meetingId:
|
6258
|
+
meetingId: _this36.id,
|
6099
6259
|
rawError: error
|
6100
6260
|
}
|
6101
6261
|
});
|
6102
6262
|
|
6103
6263
|
// TODO: change this to error codes and pre defined dictionary
|
6104
6264
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
|
6105
|
-
correlation_id:
|
6265
|
+
correlation_id: _this36.correlationId,
|
6106
6266
|
reason: (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.message,
|
6107
6267
|
stack: error.stack
|
6108
6268
|
});
|
6109
6269
|
|
6110
6270
|
// Upload logs on join Failure
|
6111
|
-
_triggerProxy.default.trigger(
|
6271
|
+
_triggerProxy.default.trigger(_this36, {
|
6112
6272
|
file: 'meeting/index',
|
6113
6273
|
function: 'join'
|
6114
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
6274
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this36);
|
6115
6275
|
joinFailed(error);
|
6116
|
-
|
6276
|
+
_this36.deferJoin = undefined;
|
6117
6277
|
return _promise.default.reject(error);
|
6118
6278
|
}).then(function (join) {
|
6119
6279
|
// @ts-ignore - config coming from registerPlugin
|
6120
|
-
if (
|
6280
|
+
if (_this36.config.enableAutomaticLLM) {
|
6121
6281
|
// @ts-ignore
|
6122
|
-
|
6123
|
-
|
6282
|
+
_this36.webex.internal.llm.on('online', _this36.handleLLMOnline);
|
6283
|
+
_this36.updateLLMConnection().catch(function (error) {
|
6124
6284
|
_loggerProxy.default.logger.error('Meeting:index#join --> Transcription Socket Connection Failed', error);
|
6125
6285
|
_metrics.default.sendBehavioralMetric(_constants2.default.LLM_CONNECTION_AFTER_JOIN_FAILURE, {
|
6126
|
-
correlation_id:
|
6286
|
+
correlation_id: _this36.correlationId,
|
6127
6287
|
reason: error === null || error === void 0 ? void 0 : error.message,
|
6128
6288
|
stack: error.stack
|
6129
6289
|
});
|
@@ -6155,7 +6315,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6155
6315
|
key: "updateLLMConnection",
|
6156
6316
|
value: (function () {
|
6157
6317
|
var _updateLLMConnection = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20() {
|
6158
|
-
var
|
6318
|
+
var _this37 = this;
|
6159
6319
|
var _this$locusInfo6, url, _this$locusInfo6$info, _this$locusInfo6$info2, datachannelUrl, practiceSessionDatachannelUrl, isJoined, dataChannelUrl;
|
6160
6320
|
return _regenerator.default.wrap(function _callee20$(_context20) {
|
6161
6321
|
while (1) switch (_context20.prev = _context20.next) {
|
@@ -6195,9 +6355,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6195
6355
|
case 11:
|
6196
6356
|
return _context20.abrupt("return", this.webex.internal.llm.registerAndConnect(url, dataChannelUrl).then(function (registerAndConnectResult) {
|
6197
6357
|
// @ts-ignore - Fix type
|
6198
|
-
|
6358
|
+
_this37.webex.internal.llm.off('event:relay.event', _this37.processRelayEvent);
|
6199
6359
|
// @ts-ignore - Fix type
|
6200
|
-
|
6360
|
+
_this37.webex.internal.llm.on('event:relay.event', _this37.processRelayEvent);
|
6201
6361
|
_loggerProxy.default.logger.info('Meeting:index#updateLLMConnection --> enabled to receive relay events!');
|
6202
6362
|
return _promise.default.resolve(registerAndConnectResult);
|
6203
6363
|
}));
|
@@ -6251,7 +6411,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6251
6411
|
}, {
|
6252
6412
|
key: "dialInPstn",
|
6253
6413
|
value: function dialInPstn() {
|
6254
|
-
var
|
6414
|
+
var _this38 = this;
|
6255
6415
|
if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
|
6256
6416
|
|
6257
6417
|
var correlationId = this.correlationId,
|
@@ -6267,10 +6427,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6267
6427
|
}).catch(function (error) {
|
6268
6428
|
var _error$error2;
|
6269
6429
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
|
6270
|
-
correlation_id:
|
6271
|
-
dial_in_url:
|
6430
|
+
correlation_id: _this38.correlationId,
|
6431
|
+
dial_in_url: _this38.dialInUrl,
|
6272
6432
|
locus_id: locusUrl.split('/').pop(),
|
6273
|
-
client_url:
|
6433
|
+
client_url: _this38.deviceUrl,
|
6274
6434
|
reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
|
6275
6435
|
stack: error.stack
|
6276
6436
|
});
|
@@ -6288,7 +6448,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6288
6448
|
}, {
|
6289
6449
|
key: "dialOutPstn",
|
6290
6450
|
value: function dialOutPstn(phoneNumber) {
|
6291
|
-
var
|
6451
|
+
var _this39 = this;
|
6292
6452
|
if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
|
6293
6453
|
|
6294
6454
|
var correlationId = this.correlationId,
|
@@ -6305,10 +6465,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6305
6465
|
}).catch(function (error) {
|
6306
6466
|
var _error$error3;
|
6307
6467
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
|
6308
|
-
correlation_id:
|
6309
|
-
dial_out_url:
|
6468
|
+
correlation_id: _this39.correlationId,
|
6469
|
+
dial_out_url: _this39.dialOutUrl,
|
6310
6470
|
locus_id: locusUrl.split('/').pop(),
|
6311
|
-
client_url:
|
6471
|
+
client_url: _this39.deviceUrl,
|
6312
6472
|
reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
|
6313
6473
|
stack: error.stack
|
6314
6474
|
});
|
@@ -6339,7 +6499,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6339
6499
|
}, {
|
6340
6500
|
key: "moveTo",
|
6341
6501
|
value: function moveTo(resourceId) {
|
6342
|
-
var
|
6502
|
+
var _this40 = this;
|
6343
6503
|
if (!resourceId) {
|
6344
6504
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
6345
6505
|
}
|
@@ -6383,12 +6543,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6383
6543
|
while (1) switch (_context21.prev = _context21.next) {
|
6384
6544
|
case 0:
|
6385
6545
|
_context21.prev = 0;
|
6386
|
-
if (!(
|
6546
|
+
if (!(_this40.screenShareFloorState === ScreenShareFloorStatus.GRANTED)) {
|
6387
6547
|
_context21.next = 4;
|
6388
6548
|
break;
|
6389
6549
|
}
|
6390
6550
|
_context21.next = 4;
|
6391
|
-
return
|
6551
|
+
return _this40.releaseScreenShareFloor();
|
6392
6552
|
case 4:
|
6393
6553
|
mediaSettings = {
|
6394
6554
|
mediaDirection: {
|
@@ -6400,37 +6560,37 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6400
6560
|
receiveShare: true
|
6401
6561
|
}
|
6402
6562
|
};
|
6403
|
-
|
6404
|
-
|
6563
|
+
_this40.mediaProperties.setMediaDirection(mediaSettings.mediaDirection);
|
6564
|
+
_this40.mediaProperties.unsetRemoteMedia();
|
6405
6565
|
|
6406
6566
|
// when a move to is intiated by the client , Locus delets the existing media node from the server as soon the device answers the meeting
|
6407
6567
|
// once the device answers we close the old connection and create new media server connection with only share enabled
|
6408
|
-
if (!
|
6568
|
+
if (!_this40.statsAnalyzer) {
|
6409
6569
|
_context21.next = 10;
|
6410
6570
|
break;
|
6411
6571
|
}
|
6412
6572
|
_context21.next = 10;
|
6413
|
-
return
|
6573
|
+
return _this40.statsAnalyzer.stopAnalyzer();
|
6414
6574
|
case 10:
|
6415
6575
|
_context21.next = 12;
|
6416
|
-
return
|
6576
|
+
return _this40.closeRemoteStreams();
|
6417
6577
|
case 12:
|
6418
6578
|
_context21.next = 14;
|
6419
|
-
return
|
6579
|
+
return _this40.closePeerConnections();
|
6420
6580
|
case 14:
|
6421
|
-
|
6422
|
-
|
6423
|
-
|
6424
|
-
|
6581
|
+
_this40.cleanupLocalStreams();
|
6582
|
+
_this40.unsetRemoteStreams();
|
6583
|
+
_this40.unsetPeerConnections();
|
6584
|
+
_this40.reconnectionManager.cleanUp();
|
6425
6585
|
_context21.next = 20;
|
6426
|
-
return
|
6586
|
+
return _this40.addMedia({
|
6427
6587
|
audioEnabled: false,
|
6428
6588
|
videoEnabled: false,
|
6429
6589
|
shareVideoEnabled: true
|
6430
6590
|
});
|
6431
6591
|
case 20:
|
6432
6592
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
|
6433
|
-
|
6593
|
+
_this40.isMoveToInProgress = false;
|
6434
6594
|
_context21.next = 29;
|
6435
6595
|
break;
|
6436
6596
|
case 24:
|
@@ -6438,12 +6598,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6438
6598
|
_context21.t0 = _context21["catch"](0);
|
6439
6599
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context21.t0);
|
6440
6600
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
6441
|
-
correlation_id:
|
6442
|
-
locus_id:
|
6601
|
+
correlation_id: _this40.correlationId,
|
6602
|
+
locus_id: _this40.locusUrl.split('/').pop(),
|
6443
6603
|
reason: _context21.t0.message,
|
6444
6604
|
stack: _context21.t0.stack
|
6445
6605
|
});
|
6446
|
-
|
6606
|
+
_this40.isMoveToInProgress = false;
|
6447
6607
|
case 29:
|
6448
6608
|
case "end":
|
6449
6609
|
return _context21.stop();
|
@@ -6459,17 +6619,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6459
6619
|
resourceId: resourceId,
|
6460
6620
|
moveToResource: true
|
6461
6621
|
}).then(function () {
|
6462
|
-
|
6622
|
+
_this40.meetingFiniteStateMachine.join();
|
6463
6623
|
}).catch(function (error) {
|
6464
|
-
|
6624
|
+
_this40.meetingFiniteStateMachine.fail(error);
|
6465
6625
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
6466
|
-
correlation_id:
|
6467
|
-
locus_id:
|
6626
|
+
correlation_id: _this40.correlationId,
|
6627
|
+
locus_id: _this40.locusUrl.split('/').pop(),
|
6468
6628
|
reason: error.message,
|
6469
6629
|
stack: error.stack
|
6470
6630
|
});
|
6471
6631
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', error);
|
6472
|
-
|
6632
|
+
_this40.isMoveToInProgress = false;
|
6473
6633
|
return _promise.default.reject(error);
|
6474
6634
|
});
|
6475
6635
|
}
|
@@ -6484,7 +6644,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6484
6644
|
}, {
|
6485
6645
|
key: "moveFrom",
|
6486
6646
|
value: function moveFrom(resourceId) {
|
6487
|
-
var
|
6647
|
+
var _this41 = this;
|
6488
6648
|
// On moveFrom ask the developer to re capture it moveFrom then updateMedia
|
6489
6649
|
if (!resourceId) {
|
6490
6650
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
@@ -6499,19 +6659,19 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6499
6659
|
}
|
6500
6660
|
});
|
6501
6661
|
return _util2.default.joinMeetingOptions(this).then(function () {
|
6502
|
-
return _util2.default.leaveMeeting(
|
6662
|
+
return _util2.default.leaveMeeting(_this41, {
|
6503
6663
|
resourceId: resourceId,
|
6504
6664
|
correlationId: oldCorrelationId,
|
6505
6665
|
moveMeeting: true
|
6506
6666
|
}).then(function () {
|
6507
|
-
|
6667
|
+
_this41.resourceId = '';
|
6508
6668
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
|
6509
6669
|
});
|
6510
6670
|
}).catch(function (error) {
|
6511
|
-
|
6671
|
+
_this41.meetingFiniteStateMachine.fail(error);
|
6512
6672
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
|
6513
|
-
correlation_id:
|
6514
|
-
locus_id:
|
6673
|
+
correlation_id: _this41.correlationId,
|
6674
|
+
locus_id: _this41.locusUrl.split('/').pop(),
|
6515
6675
|
reason: error.message,
|
6516
6676
|
stack: error.stack
|
6517
6677
|
});
|
@@ -6627,9 +6787,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6627
6787
|
}, {
|
6628
6788
|
key: "forwardEvent",
|
6629
6789
|
value: function forwardEvent(eventEmitter, eventTypeToForward, meetingEventType) {
|
6630
|
-
var
|
6790
|
+
var _this42 = this;
|
6631
6791
|
eventEmitter.on(eventTypeToForward, function (data) {
|
6632
|
-
return _triggerProxy.default.trigger(
|
6792
|
+
return _triggerProxy.default.trigger(_this42, {
|
6633
6793
|
file: 'meetings',
|
6634
6794
|
function: 'addMedia'
|
6635
6795
|
}, meetingEventType, data);
|
@@ -6790,6 +6950,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6790
6950
|
networkQualityMonitor: this.networkQualityMonitor,
|
6791
6951
|
isMultistream: this.isMultistream
|
6792
6952
|
});
|
6953
|
+
this.shareCAEventSentStatus = {
|
6954
|
+
transmitStart: false,
|
6955
|
+
transmitStop: false,
|
6956
|
+
receiveStart: false,
|
6957
|
+
receiveStop: false
|
6958
|
+
};
|
6793
6959
|
this.setupStatsAnalyzerEventHandlers();
|
6794
6960
|
this.networkQualityMonitor.on(_internalMediaCore.NetworkQualityEventNames.NETWORK_QUALITY, this.sendNetworkQualityEvent.bind(this));
|
6795
6961
|
}
|
@@ -6806,7 +6972,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6806
6972
|
key: "waitForRemoteSDPAnswer",
|
6807
6973
|
value: (function () {
|
6808
6974
|
var _waitForRemoteSDPAnswer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25() {
|
6809
|
-
var
|
6975
|
+
var _this43 = this;
|
6810
6976
|
var LOG_HEADER, deferSDPAnswer;
|
6811
6977
|
return _regenerator.default.wrap(function _callee25$(_context25) {
|
6812
6978
|
while (1) switch (_context25.prev = _context25.next) {
|
@@ -6823,18 +6989,18 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
6823
6989
|
this.sdpResponseTimer = setTimeout(function () {
|
6824
6990
|
_loggerProxy.default.logger.warn("".concat(LOG_HEADER, " timeout! no REMOTE SDP ANSWER received within ").concat(_constants.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT / 1000, " seconds"));
|
6825
6991
|
// @ts-ignore
|
6826
|
-
|
6992
|
+
_this43.webex.internal.newMetrics.submitClientEvent({
|
6827
6993
|
name: 'client.media-engine.remote-sdp-received',
|
6828
6994
|
payload: {
|
6829
6995
|
canProceed: false,
|
6830
6996
|
errors: [
|
6831
6997
|
// @ts-ignore
|
6832
|
-
|
6998
|
+
_this43.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
|
6833
6999
|
clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.MISSING_ROAP_ANSWER_CLIENT_CODE
|
6834
7000
|
})]
|
6835
7001
|
},
|
6836
7002
|
options: {
|
6837
|
-
meetingId:
|
7003
|
+
meetingId: _this43.id,
|
6838
7004
|
rawError: new Error('Timeout waiting for SDP answer')
|
6839
7005
|
}
|
6840
7006
|
});
|
@@ -7341,10 +7507,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7341
7507
|
}, {
|
7342
7508
|
key: "addMedia",
|
7343
7509
|
value: function addMedia() {
|
7344
|
-
var
|
7510
|
+
var _this44 = this;
|
7345
7511
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
7346
7512
|
return this.addMediaInternal(function () {
|
7347
|
-
return
|
7513
|
+
return _this44.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY';
|
7348
7514
|
}, undefined, false, options);
|
7349
7515
|
}
|
7350
7516
|
|
@@ -7649,7 +7815,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7649
7815
|
* @memberof Meeting
|
7650
7816
|
*/
|
7651
7817
|
function enqueueMediaUpdate(mediaUpdateType) {
|
7652
|
-
var
|
7818
|
+
var _this45 = this;
|
7653
7819
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
7654
7820
|
var canUpdateMediaNow = this.canUpdateMedia();
|
7655
7821
|
return new _promise.default(function (resolve, reject) {
|
@@ -7660,9 +7826,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7660
7826
|
options: options
|
7661
7827
|
};
|
7662
7828
|
_loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
|
7663
|
-
|
7829
|
+
_this45.queuedMediaUpdates.push(queueItem);
|
7664
7830
|
if (canUpdateMediaNow) {
|
7665
|
-
|
7831
|
+
_this45.processNextQueuedMediaUpdate();
|
7666
7832
|
}
|
7667
7833
|
});
|
7668
7834
|
}
|
@@ -7767,7 +7933,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7767
7933
|
}, {
|
7768
7934
|
key: "acknowledge",
|
7769
7935
|
value: function acknowledge(type) {
|
7770
|
-
var
|
7936
|
+
var _this46 = this;
|
7771
7937
|
if (!type) {
|
7772
7938
|
return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
|
7773
7939
|
}
|
@@ -7779,12 +7945,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7779
7945
|
}).then(function (response) {
|
7780
7946
|
return _promise.default.resolve(response);
|
7781
7947
|
}).then(function (response) {
|
7782
|
-
|
7948
|
+
_this46.meetingFiniteStateMachine.ring(type);
|
7783
7949
|
// @ts-ignore
|
7784
|
-
|
7950
|
+
_this46.webex.internal.newMetrics.submitClientEvent({
|
7785
7951
|
name: 'client.alert.displayed',
|
7786
7952
|
options: {
|
7787
|
-
meetingId:
|
7953
|
+
meetingId: _this46.id
|
7788
7954
|
}
|
7789
7955
|
});
|
7790
7956
|
return _promise.default.resolve({
|
@@ -7809,12 +7975,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7809
7975
|
}, {
|
7810
7976
|
key: "decline",
|
7811
7977
|
value: function decline(reason) {
|
7812
|
-
var
|
7978
|
+
var _this47 = this;
|
7813
7979
|
return _util2.default.declineMeeting(this, reason).then(function (decline) {
|
7814
|
-
|
7980
|
+
_this47.meetingFiniteStateMachine.decline();
|
7815
7981
|
return _promise.default.resolve(decline);
|
7816
7982
|
}).catch(function (error) {
|
7817
|
-
|
7983
|
+
_this47.meetingFiniteStateMachine.fail(error);
|
7818
7984
|
return _promise.default.reject(error);
|
7819
7985
|
});
|
7820
7986
|
}
|
@@ -7865,7 +8031,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7865
8031
|
}, {
|
7866
8032
|
key: "leave",
|
7867
8033
|
value: function leave() {
|
7868
|
-
var
|
8034
|
+
var _this48 = this;
|
7869
8035
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
7870
8036
|
var leaveReason = options.reason || _constants.MEETING_REMOVED_REASON.CLIENT_LEAVE_REQUEST;
|
7871
8037
|
|
@@ -7877,7 +8043,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7877
8043
|
var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
7878
8044
|
return (
|
7879
8045
|
// @ts-ignore
|
7880
|
-
|
8046
|
+
_this48.webex.internal.newMetrics.submitClientEvent({
|
7881
8047
|
name: 'client.call.leave',
|
7882
8048
|
payload: _objectSpread({
|
7883
8049
|
trigger: 'user-interaction',
|
@@ -7885,7 +8051,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7885
8051
|
leaveReason: options.clientEventLeaveReason
|
7886
8052
|
}, payload),
|
7887
8053
|
options: {
|
7888
|
-
meetingId:
|
8054
|
+
meetingId: _this48.id
|
7889
8055
|
}
|
7890
8056
|
})
|
7891
8057
|
);
|
@@ -7894,24 +8060,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7894
8060
|
return _util2.default.leaveMeeting(this, options).then(function (leave) {
|
7895
8061
|
// CA team recommends submitting this *after* locus /leave
|
7896
8062
|
submitLeaveMetric();
|
7897
|
-
|
7898
|
-
|
8063
|
+
_this48.meetingFiniteStateMachine.leave();
|
8064
|
+
_this48.clearMeetingData();
|
7899
8065
|
|
7900
8066
|
// upload logs on leave irrespective of meeting delete
|
7901
|
-
_triggerProxy.default.trigger(
|
8067
|
+
_triggerProxy.default.trigger(_this48, {
|
7902
8068
|
file: 'meeting/index',
|
7903
8069
|
function: 'leave'
|
7904
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8070
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this48);
|
7905
8071
|
|
7906
8072
|
// TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
|
7907
|
-
if (
|
8073
|
+
if (_this48.wirelessShare || _this48.guest) {
|
7908
8074
|
// If screen sharing clean the meeting object
|
7909
|
-
_triggerProxy.default.trigger(
|
8075
|
+
_triggerProxy.default.trigger(_this48, {
|
7910
8076
|
file: 'meeting/index',
|
7911
8077
|
function: 'leave'
|
7912
8078
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
7913
8079
|
reason: options.reason,
|
7914
|
-
meetingId:
|
8080
|
+
meetingId: _this48.id
|
7915
8081
|
});
|
7916
8082
|
}
|
7917
8083
|
_loggerProxy.default.logger.log('Meeting:index#leave --> LEAVE REASON ', leaveReason);
|
@@ -7928,16 +8094,16 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7928
8094
|
shownToUser: false
|
7929
8095
|
}]
|
7930
8096
|
});
|
7931
|
-
|
8097
|
+
_this48.meetingFiniteStateMachine.fail(error);
|
7932
8098
|
_loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error);
|
7933
8099
|
// upload logs on leave irrespective of meeting delete
|
7934
|
-
_triggerProxy.default.trigger(
|
8100
|
+
_triggerProxy.default.trigger(_this48, {
|
7935
8101
|
file: 'meeting/index',
|
7936
8102
|
function: 'leave'
|
7937
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8103
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this48);
|
7938
8104
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
|
7939
|
-
correlation_id:
|
7940
|
-
locus_id:
|
8105
|
+
correlation_id: _this48.correlationId,
|
8106
|
+
locus_id: _this48.locusUrl.split('/').pop(),
|
7941
8107
|
reason: error.message,
|
7942
8108
|
stack: error.stack,
|
7943
8109
|
code: error.code
|
@@ -7957,7 +8123,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7957
8123
|
}, {
|
7958
8124
|
key: "startWhiteboardShare",
|
7959
8125
|
value: function startWhiteboardShare(channelUrl, resourceToken) {
|
7960
|
-
var
|
8126
|
+
var _this49 = this;
|
7961
8127
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
7962
8128
|
return element.name === 'whiteboard';
|
7963
8129
|
});
|
@@ -7986,13 +8152,13 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
7986
8152
|
body.resourceToken = resourceToken;
|
7987
8153
|
}
|
7988
8154
|
return this.meetingRequest.changeMeetingFloor(body).then(function () {
|
7989
|
-
|
8155
|
+
_this49.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
7990
8156
|
return _promise.default.resolve();
|
7991
8157
|
}).catch(function (error) {
|
7992
8158
|
_loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
|
7993
8159
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
|
7994
|
-
correlation_id:
|
7995
|
-
locus_id:
|
8160
|
+
correlation_id: _this49.correlationId,
|
8161
|
+
locus_id: _this49.locusUrl.split('/').pop(),
|
7996
8162
|
reason: error.message,
|
7997
8163
|
stack: error.stack,
|
7998
8164
|
board: {
|
@@ -8015,7 +8181,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8015
8181
|
}, {
|
8016
8182
|
key: "stopWhiteboardShare",
|
8017
8183
|
value: function stopWhiteboardShare(channelUrl) {
|
8018
|
-
var
|
8184
|
+
var _this50 = this;
|
8019
8185
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
8020
8186
|
return element.name === 'whiteboard';
|
8021
8187
|
});
|
@@ -8038,8 +8204,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8038
8204
|
}).catch(function (error) {
|
8039
8205
|
_loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
|
8040
8206
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
|
8041
|
-
correlation_id:
|
8042
|
-
locus_id:
|
8207
|
+
correlation_id: _this50.correlationId,
|
8208
|
+
locus_id: _this50.locusUrl.split('/').pop(),
|
8043
8209
|
reason: error.message,
|
8044
8210
|
stack: error.stack,
|
8045
8211
|
board: {
|
@@ -8061,7 +8227,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8061
8227
|
}, {
|
8062
8228
|
key: "requestScreenShareFloor",
|
8063
8229
|
value: function requestScreenShareFloor() {
|
8064
|
-
var
|
8230
|
+
var _this51 = this;
|
8065
8231
|
if (!this.mediaProperties.hasLocalShareStream() || !this.mediaProperties.mediaDirection.sendShare) {
|
8066
8232
|
_loggerProxy.default.logger.log("Meeting:index#requestScreenShareFloor --> NOT requesting floor, because we don't have the share stream anymore (shareStream=".concat(this.mediaProperties.shareVideoStream ? 'yes' : 'no', ", sendShare=").concat(this.mediaProperties.mediaDirection.sendShare, ")"));
|
8067
8233
|
this.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
@@ -8092,34 +8258,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8092
8258
|
resourceUrl: this.resourceUrl,
|
8093
8259
|
shareInstanceId: this.localShareInstanceId
|
8094
8260
|
}).then(function () {
|
8095
|
-
|
8261
|
+
_this51.screenShareFloorState = ScreenShareFloorStatus.GRANTED;
|
8096
8262
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_SUCCESS, {
|
8097
|
-
correlation_id:
|
8098
|
-
locus_id:
|
8263
|
+
correlation_id: _this51.correlationId,
|
8264
|
+
locus_id: _this51.locusUrl.split('/').pop()
|
8099
8265
|
});
|
8100
8266
|
return _promise.default.resolve();
|
8101
8267
|
}).catch(function (error) {
|
8102
8268
|
_loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
|
8103
8269
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
|
8104
|
-
correlation_id:
|
8105
|
-
locus_id:
|
8270
|
+
correlation_id: _this51.correlationId,
|
8271
|
+
locus_id: _this51.locusUrl.split('/').pop(),
|
8106
8272
|
reason: error.message,
|
8107
8273
|
stack: error.stack
|
8108
8274
|
});
|
8109
8275
|
|
8110
8276
|
// @ts-ignore
|
8111
|
-
|
8277
|
+
_this51.webex.internal.newMetrics.submitClientEvent({
|
8112
8278
|
name: 'client.share.floor-granted.local',
|
8113
8279
|
payload: {
|
8114
8280
|
mediaType: 'share',
|
8115
8281
|
errors: _util2.default.getChangeMeetingFloorErrorPayload(error.message),
|
8116
|
-
shareInstanceId:
|
8282
|
+
shareInstanceId: _this51.localShareInstanceId
|
8117
8283
|
},
|
8118
8284
|
options: {
|
8119
|
-
meetingId:
|
8285
|
+
meetingId: _this51.id
|
8120
8286
|
}
|
8121
8287
|
});
|
8122
|
-
|
8288
|
+
_this51.screenShareFloorState = ScreenShareFloorStatus.RELEASED;
|
8123
8289
|
return _promise.default.reject(error);
|
8124
8290
|
});
|
8125
8291
|
}
|
@@ -8142,10 +8308,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8142
8308
|
}, {
|
8143
8309
|
key: "requestScreenShareFloorIfPending",
|
8144
8310
|
value: function requestScreenShareFloorIfPending() {
|
8145
|
-
var
|
8311
|
+
var _this52 = this;
|
8146
8312
|
if (this.floorGrantPending && this.state === _constants.MEETING_STATE.STATES.JOINED) {
|
8147
8313
|
this.requestScreenShareFloor().then(function () {
|
8148
|
-
|
8314
|
+
_this52.floorGrantPending = false;
|
8149
8315
|
});
|
8150
8316
|
}
|
8151
8317
|
}
|
@@ -8159,7 +8325,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8159
8325
|
}, {
|
8160
8326
|
key: "releaseScreenShareFloor",
|
8161
8327
|
value: function releaseScreenShareFloor() {
|
8162
|
-
var
|
8328
|
+
var _this53 = this;
|
8163
8329
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
8164
8330
|
return element.name === _constants.CONTENT;
|
8165
8331
|
});
|
@@ -8194,8 +8360,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8194
8360
|
}).catch(function (error) {
|
8195
8361
|
_loggerProxy.default.logger.error('Meeting:index#releaseScreenShareFloor --> Error ', error);
|
8196
8362
|
_metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
|
8197
|
-
correlation_id:
|
8198
|
-
locus_id:
|
8363
|
+
correlation_id: _this53.correlationId,
|
8364
|
+
locus_id: _this53.locusUrl.split('/').pop(),
|
8199
8365
|
reason: error.message,
|
8200
8366
|
stack: error.stack
|
8201
8367
|
});
|
@@ -8375,7 +8541,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8375
8541
|
}, {
|
8376
8542
|
key: "changeVideoLayout",
|
8377
8543
|
value: function changeVideoLayout(layoutType) {
|
8378
|
-
var
|
8544
|
+
var _this54 = this;
|
8379
8545
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
8380
8546
|
var main = renderInfo.main,
|
8381
8547
|
content = renderInfo.content;
|
@@ -8429,7 +8595,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8429
8595
|
}
|
8430
8596
|
this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
|
8431
8597
|
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
|
8432
|
-
_triggerProxy.default.trigger(
|
8598
|
+
_triggerProxy.default.trigger(_this54, {
|
8433
8599
|
file: 'meeting/index',
|
8434
8600
|
function: 'changeVideoLayout'
|
8435
8601
|
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
|
@@ -8545,7 +8711,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8545
8711
|
}, {
|
8546
8712
|
key: "endMeetingForAll",
|
8547
8713
|
value: function endMeetingForAll() {
|
8548
|
-
var
|
8714
|
+
var _this55 = this;
|
8549
8715
|
// @ts-ignore
|
8550
8716
|
this.webex.internal.newMetrics.submitClientEvent({
|
8551
8717
|
name: 'client.call.leave',
|
@@ -8563,25 +8729,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8563
8729
|
locus_id: this.locusId
|
8564
8730
|
});
|
8565
8731
|
return _util2.default.endMeetingForAll(this).then(function (end) {
|
8566
|
-
|
8567
|
-
|
8732
|
+
_this55.meetingFiniteStateMachine.end();
|
8733
|
+
_this55.clearMeetingData();
|
8568
8734
|
// upload logs on leave irrespective of meeting delete
|
8569
|
-
_triggerProxy.default.trigger(
|
8735
|
+
_triggerProxy.default.trigger(_this55, {
|
8570
8736
|
file: 'meeting/index',
|
8571
8737
|
function: 'endMeetingForAll'
|
8572
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8738
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this55);
|
8573
8739
|
return end;
|
8574
8740
|
}).catch(function (error) {
|
8575
|
-
|
8741
|
+
_this55.meetingFiniteStateMachine.fail(error);
|
8576
8742
|
_loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error);
|
8577
8743
|
// upload logs on leave irrespective of meeting delete
|
8578
|
-
_triggerProxy.default.trigger(
|
8744
|
+
_triggerProxy.default.trigger(_this55, {
|
8579
8745
|
file: 'meeting/index',
|
8580
8746
|
function: 'endMeetingForAll'
|
8581
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
8747
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this55);
|
8582
8748
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
|
8583
|
-
correlation_id:
|
8584
|
-
locus_id:
|
8749
|
+
correlation_id: _this55.correlationId,
|
8750
|
+
locus_id: _this55.locusUrl.split('/').pop(),
|
8585
8751
|
reason: error.message,
|
8586
8752
|
stack: error.stack,
|
8587
8753
|
code: error.code
|
@@ -8646,6 +8812,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8646
8812
|
});
|
8647
8813
|
}
|
8648
8814
|
|
8815
|
+
/**
|
8816
|
+
* Method to set post meeting data consent.
|
8817
|
+
*
|
8818
|
+
* @param {boolean} accept - whether consent accepted or declined
|
8819
|
+
* @returns {Promise}
|
8820
|
+
* @public
|
8821
|
+
* @memberof Meeting
|
8822
|
+
*/
|
8823
|
+
}, {
|
8824
|
+
key: "setPostMeetingDataConsent",
|
8825
|
+
value: function setPostMeetingDataConsent(accept) {
|
8826
|
+
return this.meetingRequest.setPostMeetingDataConsent({
|
8827
|
+
postMeetingDataConsent: accept,
|
8828
|
+
locusUrl: this.locusUrl,
|
8829
|
+
deviceUrl: this.deviceUrl,
|
8830
|
+
selfId: this.members.selfId
|
8831
|
+
});
|
8832
|
+
}
|
8833
|
+
|
8649
8834
|
/**
|
8650
8835
|
* Throws if we don't have a media connection created
|
8651
8836
|
*
|
@@ -8723,7 +8908,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8723
8908
|
_this$mediaProperties43,
|
8724
8909
|
_this$mediaProperties44,
|
8725
8910
|
_this$mediaProperties45,
|
8726
|
-
|
8911
|
+
_this56 = this;
|
8727
8912
|
var LOG_HEADER = 'Meeting:index#updateTranscodedMediaConnection -->';
|
8728
8913
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " starting"));
|
8729
8914
|
if (!this.canUpdateMedia()) {
|
@@ -8748,8 +8933,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8748
8933
|
}).catch(function (error) {
|
8749
8934
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error: "), error);
|
8750
8935
|
_metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
|
8751
|
-
correlation_id:
|
8752
|
-
locus_id:
|
8936
|
+
correlation_id: _this56.correlationId,
|
8937
|
+
locus_id: _this56.locusUrl.split('/').pop(),
|
8753
8938
|
reason: error.message,
|
8754
8939
|
stack: error.stack
|
8755
8940
|
});
|
@@ -8971,10 +9156,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8971
9156
|
return this.updateTranscodedMediaConnection();
|
8972
9157
|
case 31:
|
8973
9158
|
if (!floorRequestNeeded) {
|
8974
|
-
_context40.next =
|
9159
|
+
_context40.next = 39;
|
8975
9160
|
break;
|
8976
9161
|
}
|
8977
9162
|
this.localShareInstanceId = _uuid.default.v4();
|
9163
|
+
this.shareCAEventSentStatus.transmitStart = false;
|
9164
|
+
this.shareCAEventSentStatus.transmitStop = false;
|
8978
9165
|
|
8979
9166
|
// @ts-ignore
|
8980
9167
|
this.webex.internal.newMetrics.submitClientEvent({
|
@@ -8995,9 +9182,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
8995
9182
|
// we're sending the http request to Locus to request the screen share floor
|
8996
9183
|
// only after the SDP update, because that's how it's always been done for transcoded meetings
|
8997
9184
|
// and also if sharing from the start, we need confluence to have been created
|
8998
|
-
_context40.next =
|
9185
|
+
_context40.next = 39;
|
8999
9186
|
return this.enqueueScreenShareFloorRequest();
|
9000
|
-
case
|
9187
|
+
case 39:
|
9001
9188
|
case "end":
|
9002
9189
|
return _context40.stop();
|
9003
9190
|
}
|