@webex/internal-plugin-metrics 3.12.0-task-refactor.1 → 3.12.0-webex-services-ready.2
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/batcher.js +3 -0
- package/dist/batcher.js.map +1 -1
- package/dist/call-diagnostic/call-diagnostic-metrics-batcher.js +23 -0
- package/dist/call-diagnostic/call-diagnostic-metrics-batcher.js.map +1 -1
- package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js +68 -50
- package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js.map +1 -1
- package/dist/call-diagnostic/call-diagnostic-metrics.js +60 -8
- package/dist/call-diagnostic/call-diagnostic-metrics.js.map +1 -1
- package/dist/call-diagnostic/call-diagnostic-metrics.util.js +44 -4
- package/dist/call-diagnostic/call-diagnostic-metrics.util.js.map +1 -1
- package/dist/call-diagnostic/config.js +17 -3
- package/dist/call-diagnostic/config.js.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/generic-metrics.js +8 -6
- package/dist/generic-metrics.js.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/metrics.js +1 -1
- package/dist/metrics.types.js.map +1 -1
- package/dist/new-metrics.js +56 -20
- package/dist/new-metrics.js.map +1 -1
- package/dist/prelogin-metrics-batcher.js +23 -0
- package/dist/prelogin-metrics-batcher.js.map +1 -1
- package/dist/prelogin-metrics.js +106 -0
- package/dist/prelogin-metrics.js.map +1 -0
- package/dist/types/call-diagnostic/call-diagnostic-metrics-latencies.d.ts +9 -0
- package/dist/types/call-diagnostic/call-diagnostic-metrics.d.ts +57 -20
- package/dist/types/call-diagnostic/call-diagnostic-metrics.util.d.ts +23 -2
- package/dist/types/call-diagnostic/config.d.ts +6 -19
- package/dist/types/config.d.ts +16 -15
- package/dist/types/index.d.ts +2 -1
- package/dist/types/metrics.types.d.ts +4 -4
- package/dist/types/new-metrics.d.ts +12 -0
- package/dist/types/prelogin-metrics.d.ts +47 -0
- package/package.json +11 -11
- package/src/batcher.js +4 -0
- package/src/call-diagnostic/call-diagnostic-metrics-batcher.ts +26 -0
- package/src/call-diagnostic/call-diagnostic-metrics-latencies.ts +139 -70
- package/src/call-diagnostic/call-diagnostic-metrics.ts +52 -1
- package/src/call-diagnostic/call-diagnostic-metrics.util.ts +49 -2
- package/src/call-diagnostic/config.ts +15 -0
- package/src/config.js +1 -0
- package/src/generic-metrics.ts +6 -6
- package/src/index.ts +2 -0
- package/src/metrics.types.ts +3 -3
- package/src/new-metrics.ts +42 -0
- package/src/prelogin-metrics-batcher.ts +26 -0
- package/src/prelogin-metrics.ts +94 -0
- package/test/unit/spec/batcher.js +43 -0
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-batcher.ts +183 -11
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-latencies.ts +324 -366
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.ts +724 -159
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.util.ts +92 -3
- package/test/unit/spec/prelogin-metrics-batcher.ts +190 -36
- package/test/unit/spec/prelogin-metrics.ts +132 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
|
4
|
+
var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
5
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
7
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
8
|
+
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
9
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
10
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
11
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
12
|
+
value: true
|
|
13
|
+
});
|
|
14
|
+
exports.default = void 0;
|
|
15
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
16
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
17
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
18
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
19
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
20
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
21
|
+
var _genericMetrics = _interopRequireDefault(require("./generic-metrics"));
|
|
22
|
+
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? _Reflect$construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
25
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
26
|
+
/**
|
|
27
|
+
* @description Util class to handle PreLogin Metrics
|
|
28
|
+
* @export
|
|
29
|
+
* @class PreLoginMetrics
|
|
30
|
+
*/
|
|
31
|
+
var PreLoginMetrics = exports.default = /*#__PURE__*/function (_GenericMetrics) {
|
|
32
|
+
/**
|
|
33
|
+
* Constructor
|
|
34
|
+
* @param {PreLoginMetricsBatcher} preLoginMetricsBatcher - Pre-login metrics batcher
|
|
35
|
+
* @param {any} attrs - Attributes
|
|
36
|
+
* @param {any} options - Options
|
|
37
|
+
* @constructor
|
|
38
|
+
*/
|
|
39
|
+
function PreLoginMetrics(preLoginMetricsBatcher) {
|
|
40
|
+
var _this;
|
|
41
|
+
var attrs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
42
|
+
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
43
|
+
(0, _classCallCheck2.default)(this, PreLoginMetrics);
|
|
44
|
+
_this = _callSuper(this, PreLoginMetrics, [attrs, options]);
|
|
45
|
+
(0, _defineProperty2.default)(_this, "preLoginMetricsBatcher", void 0);
|
|
46
|
+
_this.preLoginMetricsBatcher = preLoginMetricsBatcher;
|
|
47
|
+
return _this;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Submit a business metric to our metrics endpoint.
|
|
52
|
+
* Routes to the correct table with the correct schema payload by table.
|
|
53
|
+
* @see https://confluence-eng-gpk2.cisco.com/conf/display/WAP/Business+metrics++-%3E+ROMA
|
|
54
|
+
* @param {Object} options - The options object
|
|
55
|
+
* @param {string} options.name - Name of the metric
|
|
56
|
+
* @param {string} options.preLoginId - ID to identify pre-login user
|
|
57
|
+
* @param {EventPayload} options.payload - User payload of the metric
|
|
58
|
+
* @param {EventPayload} [options.metadata] - Optional metadata to include outside of eventPayload.value
|
|
59
|
+
* @returns {Promise<void>} Promise that resolves when the metric is submitted
|
|
60
|
+
*/
|
|
61
|
+
(0, _inherits2.default)(PreLoginMetrics, _GenericMetrics);
|
|
62
|
+
return (0, _createClass2.default)(PreLoginMetrics, [{
|
|
63
|
+
key: "submitPreLoginEvent",
|
|
64
|
+
value: function submitPreLoginEvent(_ref) {
|
|
65
|
+
var name = _ref.name,
|
|
66
|
+
preLoginId = _ref.preLoginId,
|
|
67
|
+
payload = _ref.payload,
|
|
68
|
+
metadata = _ref.metadata;
|
|
69
|
+
if (!metadata) {
|
|
70
|
+
metadata = {};
|
|
71
|
+
}
|
|
72
|
+
if (!metadata.appType) {
|
|
73
|
+
metadata.appType = 'Web Client';
|
|
74
|
+
}
|
|
75
|
+
var finalEvent = this.buildEvent(name, preLoginId, payload, metadata);
|
|
76
|
+
this.preLoginMetricsBatcher.savePreLoginId(preLoginId);
|
|
77
|
+
return this.preLoginMetricsBatcher.request(finalEvent);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Builds a formatted event object for metrics submission.
|
|
82
|
+
* @param {string} metricName - Metric name
|
|
83
|
+
* @param {string} preLoginId - Pre-login user identifier
|
|
84
|
+
* @param {EventPayload} payload - Metric payload data
|
|
85
|
+
* @param {EventPayload} metadata - Additional metadata to include in the event
|
|
86
|
+
* @returns {object} Formatted metrics event object with type, eventPayload, and timestamp
|
|
87
|
+
*/
|
|
88
|
+
}, {
|
|
89
|
+
key: "buildEvent",
|
|
90
|
+
value: function buildEvent(metricName, preLoginId, payload, metadata) {
|
|
91
|
+
return {
|
|
92
|
+
type: ['business'],
|
|
93
|
+
eventPayload: {
|
|
94
|
+
metricName: metricName,
|
|
95
|
+
browserDetails: this.getBrowserDetails(),
|
|
96
|
+
context: this.getContext(),
|
|
97
|
+
timestamp: new Date().getTime(),
|
|
98
|
+
value: _objectSpread(_objectSpread({
|
|
99
|
+
preLoginId: preLoginId
|
|
100
|
+
}, metadata), payload)
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
}]);
|
|
105
|
+
}(_genericMetrics.default);
|
|
106
|
+
//# sourceMappingURL=prelogin-metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_genericMetrics","_interopRequireDefault","require","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","Boolean","prototype","valueOf","call","PreLoginMetrics","exports","_GenericMetrics","preLoginMetricsBatcher","_this","attrs","undefined","options","_classCallCheck2","_inherits2","_createClass2","key","value","submitPreLoginEvent","_ref","name","preLoginId","payload","metadata","appType","finalEvent","buildEvent","savePreLoginId","request","metricName","type","eventPayload","browserDetails","getBrowserDetails","context","getContext","timestamp","Date","getTime","GenericMetrics"],"sources":["prelogin-metrics.ts"],"sourcesContent":["import GenericMetrics from './generic-metrics';\nimport {BusinessEvent, EventPayload} from './metrics.types';\nimport PreLoginMetricsBatcher from './prelogin-metrics-batcher';\n\n/**\n * @description Util class to handle PreLogin Metrics\n * @export\n * @class PreLoginMetrics\n */\nexport default class PreLoginMetrics extends GenericMetrics {\n private preLoginMetricsBatcher: typeof PreLoginMetricsBatcher;\n\n /**\n * Constructor\n * @param {PreLoginMetricsBatcher} preLoginMetricsBatcher - Pre-login metrics batcher\n * @param {any} attrs - Attributes\n * @param {any} options - Options\n * @constructor\n */\n constructor(\n preLoginMetricsBatcher: typeof PreLoginMetricsBatcher,\n attrs: any = {},\n options: {parent?: any} = {}\n ) {\n super(attrs, options);\n this.preLoginMetricsBatcher = preLoginMetricsBatcher;\n }\n\n /**\n * Submit a business metric to our metrics endpoint.\n * Routes to the correct table with the correct schema payload by table.\n * @see https://confluence-eng-gpk2.cisco.com/conf/display/WAP/Business+metrics++-%3E+ROMA\n * @param {Object} options - The options object\n * @param {string} options.name - Name of the metric\n * @param {string} options.preLoginId - ID to identify pre-login user\n * @param {EventPayload} options.payload - User payload of the metric\n * @param {EventPayload} [options.metadata] - Optional metadata to include outside of eventPayload.value\n * @returns {Promise<void>} Promise that resolves when the metric is submitted\n */\n public submitPreLoginEvent({\n name,\n preLoginId,\n payload,\n metadata,\n }: {\n name: string;\n preLoginId: string;\n payload: EventPayload;\n metadata?: EventPayload;\n }): Promise<void> {\n if (!metadata) {\n metadata = {};\n }\n if (!metadata.appType) {\n metadata.appType = 'Web Client';\n }\n\n const finalEvent = this.buildEvent(name, preLoginId, payload, metadata);\n\n this.preLoginMetricsBatcher.savePreLoginId(preLoginId);\n\n return this.preLoginMetricsBatcher.request(finalEvent);\n }\n\n /**\n * Builds a formatted event object for metrics submission.\n * @param {string} metricName - Metric name\n * @param {string} preLoginId - Pre-login user identifier\n * @param {EventPayload} payload - Metric payload data\n * @param {EventPayload} metadata - Additional metadata to include in the event\n * @returns {object} Formatted metrics event object with type, eventPayload, and timestamp\n */\n private buildEvent(\n metricName: string,\n preLoginId: string,\n payload: EventPayload,\n metadata: EventPayload\n ): BusinessEvent {\n return {\n type: ['business'],\n eventPayload: {\n metricName,\n browserDetails: this.getBrowserDetails(),\n context: this.getContext(),\n timestamp: new Date().getTime(),\n value: {\n preLoginId,\n ...metadata,\n ...payload,\n },\n },\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -149,6 +149,15 @@ export default class CallDiagnosticLatencies extends WebexPlugin {
|
|
|
149
149
|
* @returns - latency
|
|
150
150
|
*/
|
|
151
151
|
getStayLobbyTime(): number;
|
|
152
|
+
/**
|
|
153
|
+
* Stay lobby time capped by a certain timestamp.
|
|
154
|
+
* This is to handle the case where the target end timestamp could happen before the lobby is exited,
|
|
155
|
+
* for example media-engine.ready or client.ice.end
|
|
156
|
+
* This is supposed to be called AFTER the end timestamp happens
|
|
157
|
+
* @param endTimestampKey name of the target end event
|
|
158
|
+
* @returns - latency
|
|
159
|
+
*/
|
|
160
|
+
getStayLobbyTimeCappedBy(endTimestampKey: MetricEventNames): number;
|
|
152
161
|
/**
|
|
153
162
|
* Page JMT
|
|
154
163
|
* @returns - latency
|
|
@@ -36,6 +36,8 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
36
36
|
private isMercuryConnected;
|
|
37
37
|
private eventLimitTracker;
|
|
38
38
|
private eventLimitWarningsLogged;
|
|
39
|
+
private isTelemetryOptOutManual;
|
|
40
|
+
private isTelemetryOptOutAutomatic;
|
|
39
41
|
validator: (options: {
|
|
40
42
|
type: 'mqe' | 'ce';
|
|
41
43
|
event: Event;
|
|
@@ -53,6 +55,21 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
53
55
|
* @returns one of 'login-ci','unverified-guest', null
|
|
54
56
|
*/
|
|
55
57
|
getCurLoginType(): "unverified-guest" | "login-ci";
|
|
58
|
+
/**
|
|
59
|
+
* Returns the telemetryOptOut value of the current user
|
|
60
|
+
* @returns one of 'manual', 'automatic', undefined
|
|
61
|
+
*/
|
|
62
|
+
getTelemetryOptOut(): "manual" | "automatic";
|
|
63
|
+
/**
|
|
64
|
+
* Sets the manual telemetry opt-out status for the current user
|
|
65
|
+
* @param value - boolean value indicating manual telemetry opt-out status
|
|
66
|
+
*/
|
|
67
|
+
setIsTelemetryOptOutManual(value: boolean): void;
|
|
68
|
+
/**
|
|
69
|
+
* Sets the automatic telemetry opt-out status for the current user
|
|
70
|
+
* @param value - boolean value indicating automatic telemetry opt-out status
|
|
71
|
+
*/
|
|
72
|
+
setIsTelemetryOptOutAutomatic(value: boolean): void;
|
|
56
73
|
/**
|
|
57
74
|
* Returns if the meeting has converged architecture enabled
|
|
58
75
|
* @param options.meetingId
|
|
@@ -80,10 +97,11 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
80
97
|
* @returns
|
|
81
98
|
*/
|
|
82
99
|
getOrigin(options: GetOriginOptions, meetingId?: string): {
|
|
83
|
-
name: "addin" | "antares" | "appapi" | "beech" | "breakout" | "calendar" | "cb" | "cca" | "ccc" | "cloudproxy" | "crc" | "edonus" | "
|
|
100
|
+
name: "endpoint" | "addin" | "antares" | "appapi" | "beech" | "breakout" | "calendar" | "cb" | "cca" | "ccc" | "cloudproxy" | "crc" | "edonus" | "givr" | "hecate" | "hedge" | "hesiod" | "homer" | "idbroker" | "superhomer" | "l2sip" | "linus" | "locus" | "mbs" | "mcc" | "mcs" | "mercury" | "mes" | "mjs" | "mmp" | "mrs" | "mygdon" | "ngpage" | "ngservice" | "oauth" | "orpheus" | "page" | "poros" | "publicapi" | "rhesos" | "sbs" | "terminus" | "tpgw" | "ucc" | "wdm" | "webexivr" | "meetingcontainer";
|
|
84
101
|
userAgent: string;
|
|
85
102
|
buildType?: "debug" | "test" | "prod" | "tap" | "analyzer-test";
|
|
86
103
|
upgradeChannel?: string;
|
|
104
|
+
upgradeSource?: string;
|
|
87
105
|
instanceId?: string;
|
|
88
106
|
networkType: "wifi" | "ethernet" | "cellular" | "unknown";
|
|
89
107
|
localIP?: string;
|
|
@@ -92,21 +110,23 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
92
110
|
environment?: string;
|
|
93
111
|
newEnvironment?: string;
|
|
94
112
|
clientInfo?: {
|
|
95
|
-
os?: "
|
|
113
|
+
os?: "windows" | "mac" | "ios" | "android" | "chrome" | "linux" | "other" | "android-x64" | "android-arm64" | "uwp-arm64";
|
|
96
114
|
osVersion?: string;
|
|
97
115
|
localIP?: string;
|
|
98
116
|
gatewayIP?: string;
|
|
99
117
|
macAddress?: string;
|
|
100
118
|
localNetworkPrefix?: string;
|
|
101
119
|
publicNetworkPrefix?: string;
|
|
102
|
-
browserLaunchMethod?: "activex" | "npapi" | "extension" | "cwsapi" | "java" | "tfs" | "webacd" | "
|
|
120
|
+
browserLaunchMethod?: "url-handler" | "activex" | "npapi" | "extension" | "cwsapi" | "java" | "tfs" | "webacd" | "thinclient" | "switch-to-web" | "switch-to-native";
|
|
121
|
+
cwsStatus?: "starting-converged-mtg" | "webexapp-launched" | "webex-launcher-launched";
|
|
122
|
+
cwsVersion?: string;
|
|
103
123
|
clientLaunchMethod?: "url-handler" | "universal-link" | "voice-command" | "notification" | "manual" | "teams-cross-launch" | "mc-cross-launch" | "cws" | "installer" | "installer-launcher" | "launcher" | "cws-launcher";
|
|
104
|
-
urlProtocolLaunchMethod?: "
|
|
124
|
+
urlProtocolLaunchMethod?: "manual" | "auto" | "extension-fallback";
|
|
105
125
|
browser?: string;
|
|
106
126
|
browserVersion?: string;
|
|
107
127
|
clientType?: "MEETING_CENTER" | "EVENT_CENTER" | "TRAINING_CENTER" | "TEAMS_CLIENT" | "TEAMS_DEVICE" | "TEAMS_SHARE" | "SIP" | "RECORDING" | "CLOUD_AWARE_SIP" | "TEAMS_WXC_CLIENT" | "WXC_CLIENT" | "WXC_DEVICE" | "WEBEX_JS_SDK" | "VOICEA_CLIENT" | "CISCO_SIP_GW" | "WEBEX_SDK" | "CPAAS_THIRD_PARTY_SDK" | "WXC_THIRD_PARTY" | "WXCC" | "TEAMS_PHONE" | "WEBEX_RELAY";
|
|
108
|
-
subClientType?: "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "
|
|
109
|
-
schedulingClientType?: "
|
|
128
|
+
subClientType?: "TEAMS_DEVICE" | "SIP" | "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP_PSTN";
|
|
129
|
+
schedulingClientType?: "TEAMS_CLIENT" | "GOOGLE_ADDON" | "PT" | "PUBLIC_API" | "UNIFIED_PAGE" | "WEBEX_PAGE" | "GOOGLE_NOTIFICATION_CALENDAR" | "MSFT_NOTIFICATION_ADDIN" | "MSFT_NOTIFICATION_CALENDAR" | "OUTLOOK_ADDIN";
|
|
110
130
|
clientVersion?: string;
|
|
111
131
|
clientVersionStatus?: "CURRENT" | "LEGACY" | "UNSUPPORTED";
|
|
112
132
|
localClientVersion?: string;
|
|
@@ -132,14 +152,15 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
132
152
|
cpuInfo?: {
|
|
133
153
|
description: string;
|
|
134
154
|
numberOfCores: number;
|
|
135
|
-
architecture: "intel32" | "intel64" | "amd32" | "amd64" | "arm32" | "arm64" | "
|
|
155
|
+
architecture: "unknown" | "intel32" | "intel64" | "amd32" | "amd64" | "arm32" | "arm64" | "armv9" | "armv8" | "armv7" | "armv6" | "x86_64" | "x86_32";
|
|
136
156
|
staticPerformance?: string;
|
|
137
157
|
clockSpeedGigaHertz?: number;
|
|
138
|
-
additionalProperties?:
|
|
158
|
+
additionalProperties?: never;
|
|
139
159
|
};
|
|
140
160
|
shareType?: "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share";
|
|
141
161
|
videoDisplayMode?: "grid-view" | "active-speaker-view";
|
|
142
|
-
videoLayoutType?: "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare";
|
|
162
|
+
videoLayoutType?: "auto" | "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare" | "largeGallery" | "autoWithShare";
|
|
163
|
+
appliedLayout?: "auto" | "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare" | "largeGallery" | "autoWithShare";
|
|
143
164
|
videoRenderType?: "wme" | "client_d3d" | "client_gdi";
|
|
144
165
|
vdiInfo?: {};
|
|
145
166
|
is64BitsClient?: boolean;
|
|
@@ -151,13 +172,16 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
151
172
|
vendorId?: string;
|
|
152
173
|
staticPerformanceLevel?: string;
|
|
153
174
|
staticPerformanceScore?: number;
|
|
154
|
-
|
|
175
|
+
preInstalledTime?: string;
|
|
176
|
+
preInstalledType?: "installer" | "launcher" | "app";
|
|
177
|
+
preInstalledVersion?: string;
|
|
178
|
+
additionalProperties?: never;
|
|
155
179
|
};
|
|
156
180
|
emmVendorId?: string;
|
|
157
181
|
isHybridMedia?: boolean;
|
|
158
182
|
originData?: {};
|
|
159
183
|
serviceVersion?: string;
|
|
160
|
-
additionalProperties?:
|
|
184
|
+
additionalProperties?: never;
|
|
161
185
|
};
|
|
162
186
|
/**
|
|
163
187
|
* Gather identifier details for call diagnostic payload.
|
|
@@ -171,6 +195,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
171
195
|
breakoutGroupId?: string;
|
|
172
196
|
breakoutMoveId?: string;
|
|
173
197
|
breakoutSessionId?: string;
|
|
198
|
+
browserId?: string;
|
|
174
199
|
ciExchangeTokenUrl?: string;
|
|
175
200
|
confluenceId?: string;
|
|
176
201
|
cpaasIdentifiers?: {
|
|
@@ -180,7 +205,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
180
205
|
imiAppId: string;
|
|
181
206
|
sessionId: string;
|
|
182
207
|
sessionInstanceId: string;
|
|
183
|
-
additionalProperties?:
|
|
208
|
+
additionalProperties?: never;
|
|
184
209
|
};
|
|
185
210
|
csdmDeviceUrl?: string;
|
|
186
211
|
destinationBreakoutSessionId?: string;
|
|
@@ -196,6 +221,8 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
196
221
|
ivrId?: string;
|
|
197
222
|
callId?: string;
|
|
198
223
|
pairCallId?: string;
|
|
224
|
+
llmWebsocketUrl?: string;
|
|
225
|
+
locusCluster?: string;
|
|
199
226
|
locusId?: string;
|
|
200
227
|
locusJoinUrl?: string;
|
|
201
228
|
locusSessionId?: string;
|
|
@@ -209,6 +236,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
209
236
|
meetingLookupUrl?: string;
|
|
210
237
|
meetingOrgId?: string;
|
|
211
238
|
metricServiceUrl?: string;
|
|
239
|
+
mercuryWebsocketUrl?: string;
|
|
212
240
|
msteamsTenantGuid?: string;
|
|
213
241
|
msteamsConferenceId?: string;
|
|
214
242
|
msteamsMeetingId?: string;
|
|
@@ -222,7 +250,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
222
250
|
sipSessionId?: {
|
|
223
251
|
local?: string;
|
|
224
252
|
remote?: string;
|
|
225
|
-
additionalProperties?:
|
|
253
|
+
additionalProperties?: never;
|
|
226
254
|
};
|
|
227
255
|
sipUri?: string;
|
|
228
256
|
subConfId?: string;
|
|
@@ -250,7 +278,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
250
278
|
idForEndpointAB?: string;
|
|
251
279
|
customerOrgId?: string;
|
|
252
280
|
correlationId: string;
|
|
253
|
-
additionalProperties?:
|
|
281
|
+
additionalProperties?: never;
|
|
254
282
|
} | {
|
|
255
283
|
aggregatedBreakoutMoveId?: string;
|
|
256
284
|
attendeeId?: string;
|
|
@@ -258,6 +286,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
258
286
|
breakoutGroupId?: string;
|
|
259
287
|
breakoutMoveId?: string;
|
|
260
288
|
breakoutSessionId?: string;
|
|
289
|
+
browserId?: string;
|
|
261
290
|
ciExchangeTokenUrl?: string;
|
|
262
291
|
confluenceId?: string;
|
|
263
292
|
cpaasIdentifiers?: {
|
|
@@ -267,7 +296,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
267
296
|
imiAppId: string;
|
|
268
297
|
sessionId: string;
|
|
269
298
|
sessionInstanceId: string;
|
|
270
|
-
additionalProperties?:
|
|
299
|
+
additionalProperties?: never;
|
|
271
300
|
};
|
|
272
301
|
csdmDeviceUrl?: string;
|
|
273
302
|
destinationBreakoutSessionId?: string;
|
|
@@ -283,6 +312,8 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
283
312
|
ivrId?: string;
|
|
284
313
|
callId?: string;
|
|
285
314
|
pairCallId?: string;
|
|
315
|
+
llmWebsocketUrl?: string;
|
|
316
|
+
locusCluster?: string;
|
|
286
317
|
locusId?: string;
|
|
287
318
|
locusJoinUrl?: string;
|
|
288
319
|
locusSessionId?: string;
|
|
@@ -296,6 +327,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
296
327
|
meetingLookupUrl?: string;
|
|
297
328
|
meetingOrgId?: string;
|
|
298
329
|
metricServiceUrl?: string;
|
|
330
|
+
mercuryWebsocketUrl?: string;
|
|
299
331
|
msteamsTenantGuid?: string;
|
|
300
332
|
msteamsConferenceId?: string;
|
|
301
333
|
msteamsMeetingId?: string;
|
|
@@ -309,7 +341,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
309
341
|
sipSessionId?: {
|
|
310
342
|
local?: string;
|
|
311
343
|
remote?: string;
|
|
312
|
-
additionalProperties?:
|
|
344
|
+
additionalProperties?: never;
|
|
313
345
|
};
|
|
314
346
|
sipUri?: string;
|
|
315
347
|
subConfId?: string;
|
|
@@ -337,7 +369,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
337
369
|
idForEndpointAB?: string;
|
|
338
370
|
customerOrgId?: string;
|
|
339
371
|
correlationId: string;
|
|
340
|
-
additionalProperties?:
|
|
372
|
+
additionalProperties?: never;
|
|
341
373
|
} | {
|
|
342
374
|
aggregatedBreakoutMoveId?: string;
|
|
343
375
|
attendeeId?: string;
|
|
@@ -345,6 +377,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
345
377
|
breakoutGroupId?: string;
|
|
346
378
|
breakoutMoveId?: string;
|
|
347
379
|
breakoutSessionId?: string;
|
|
380
|
+
browserId?: string;
|
|
348
381
|
ciExchangeTokenUrl?: string;
|
|
349
382
|
confluenceId?: string;
|
|
350
383
|
cpaasIdentifiers?: {
|
|
@@ -354,7 +387,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
354
387
|
imiAppId: string;
|
|
355
388
|
sessionId: string;
|
|
356
389
|
sessionInstanceId: string;
|
|
357
|
-
additionalProperties?:
|
|
390
|
+
additionalProperties?: never;
|
|
358
391
|
};
|
|
359
392
|
csdmDeviceUrl?: string;
|
|
360
393
|
destinationBreakoutSessionId?: string;
|
|
@@ -370,6 +403,8 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
370
403
|
ivrId?: string;
|
|
371
404
|
callId?: string;
|
|
372
405
|
pairCallId?: string;
|
|
406
|
+
llmWebsocketUrl?: string;
|
|
407
|
+
locusCluster?: string;
|
|
373
408
|
locusId?: string;
|
|
374
409
|
locusJoinUrl?: string;
|
|
375
410
|
locusSessionId?: string;
|
|
@@ -383,6 +418,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
383
418
|
meetingLookupUrl?: string;
|
|
384
419
|
meetingOrgId?: string;
|
|
385
420
|
metricServiceUrl?: string;
|
|
421
|
+
mercuryWebsocketUrl?: string;
|
|
386
422
|
msteamsTenantGuid?: string;
|
|
387
423
|
msteamsConferenceId?: string;
|
|
388
424
|
msteamsMeetingId?: string;
|
|
@@ -396,7 +432,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
396
432
|
sipSessionId?: {
|
|
397
433
|
local?: string;
|
|
398
434
|
remote?: string;
|
|
399
|
-
additionalProperties?:
|
|
435
|
+
additionalProperties?: never;
|
|
400
436
|
};
|
|
401
437
|
sipUri?: string;
|
|
402
438
|
subConfId?: string;
|
|
@@ -424,7 +460,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
424
460
|
idForEndpointAB?: string;
|
|
425
461
|
customerOrgId?: string;
|
|
426
462
|
correlationId: string;
|
|
427
|
-
additionalProperties?:
|
|
463
|
+
additionalProperties?: never;
|
|
428
464
|
};
|
|
429
465
|
/**
|
|
430
466
|
* Create diagnostic event, which can hold client event, feature event or MQE event data.
|
|
@@ -595,6 +631,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
595
631
|
* Prepare the event and send the request to metrics-a service, pre login.
|
|
596
632
|
* @param event
|
|
597
633
|
* @param preLoginId
|
|
634
|
+
* @param markTelemetryOptOutOnResponse
|
|
598
635
|
* @returns
|
|
599
636
|
*/
|
|
600
637
|
submitToCallDiagnosticsPreLogin: (event: Event, preLoginId?: string) => Promise<any>;
|
|
@@ -59,6 +59,27 @@ export declare const isUnauthorizedError: (rawError: any) => boolean;
|
|
|
59
59
|
* @returns {boolean}
|
|
60
60
|
*/
|
|
61
61
|
export declare const isSdpOfferCreationError: (rawError: any) => boolean;
|
|
62
|
+
export declare const isWebrtcApiNotAvailableError: (rawError: {
|
|
63
|
+
code: number;
|
|
64
|
+
message: string;
|
|
65
|
+
name: string;
|
|
66
|
+
} | unknown) => boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Checks if the given error is a browser media error by its name.
|
|
69
|
+
* Returns true if the error name matches any known browser media error name in the mapping.
|
|
70
|
+
*
|
|
71
|
+
* @param {Object} rawError - The error object to check.
|
|
72
|
+
* @returns {boolean} True if the error is a browser media error, false otherwise.
|
|
73
|
+
*/
|
|
74
|
+
export declare const isBrowserMediaError: (rawError: any) => boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Returns the client error code mapped to the given browser media error name.
|
|
77
|
+
* If the error name is not found in the mapping, returns undefined.
|
|
78
|
+
*
|
|
79
|
+
* @param {Object} rawError - The error object containing the error name.
|
|
80
|
+
* @returns {string|undefined} The mapped client error code, or undefined if not found.
|
|
81
|
+
*/
|
|
82
|
+
export declare const getBrowserMediaErrorCode: (rawError: any) => number;
|
|
62
83
|
/**
|
|
63
84
|
* MDN Media Devices getUserMedia() method returns a name if it errs
|
|
64
85
|
* Documentation can be found here: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia
|
|
@@ -72,7 +93,7 @@ export declare const isBrowserMediaErrorName: (errorName: any) => boolean;
|
|
|
72
93
|
* @param webClientDomain
|
|
73
94
|
* @returns
|
|
74
95
|
*/
|
|
75
|
-
export declare const getBuildType: (webex: any, webClientDomain: any, markAsTestEvent?: boolean) => Event[
|
|
96
|
+
export declare const getBuildType: (webex: any, webClientDomain: any, markAsTestEvent?: boolean) => Event['origin']['buildType'];
|
|
76
97
|
/**
|
|
77
98
|
* Prepare metric item for submission.
|
|
78
99
|
* @param {Object} webex sdk instance
|
|
@@ -98,7 +119,7 @@ export declare const extractVersionMetadata: (version: string) => {
|
|
|
98
119
|
* that happen when trying to add media in a meeting.
|
|
99
120
|
*/
|
|
100
121
|
export declare const generateClientErrorCodeForIceFailure: ({ signalingState, iceConnected, turnServerUsed, unreachable, }: {
|
|
101
|
-
signalingState: RTCPeerConnection[
|
|
122
|
+
signalingState: RTCPeerConnection['signalingState'];
|
|
102
123
|
iceConnected: boolean;
|
|
103
124
|
turnServerUsed: boolean;
|
|
104
125
|
unreachable: boolean;
|
|
@@ -15,25 +15,8 @@ export declare const ICE_AND_REACHABILITY_FAILED_CLIENT_CODE = 2011;
|
|
|
15
15
|
export declare const MULTISTREAM_NOT_AVAILABLE_CLIENT_CODE = 2012;
|
|
16
16
|
export declare const WBX_APP_API_URL = "wbxappapi";
|
|
17
17
|
export declare const WEBEX_SUB_SERVICE_TYPES: Record<string, ClientSubServiceType>;
|
|
18
|
-
declare const BROWSER_MEDIA_ERROR_NAMES: {
|
|
19
|
-
PERMISSION_DENIED_ERROR: string;
|
|
20
|
-
NOT_ALLOWED_ERROR: string;
|
|
21
|
-
NOT_READABLE_ERROR: string;
|
|
22
|
-
ABORT_ERROR: string;
|
|
23
|
-
NOT_FOUND_ERROR: string;
|
|
24
|
-
OVERCONSTRAINED_ERROR: string;
|
|
25
|
-
SECURITY_ERROR: string;
|
|
26
|
-
TYPE_ERROR: string;
|
|
27
|
-
};
|
|
28
18
|
export declare const BROWSER_MEDIA_ERROR_NAME_TO_CLIENT_ERROR_CODES_MAP: {
|
|
29
|
-
[
|
|
30
|
-
[BROWSER_MEDIA_ERROR_NAMES.NOT_ALLOWED_ERROR]: number;
|
|
31
|
-
[BROWSER_MEDIA_ERROR_NAMES.NOT_READABLE_ERROR]: number;
|
|
32
|
-
[BROWSER_MEDIA_ERROR_NAMES.ABORT_ERROR]: number;
|
|
33
|
-
[BROWSER_MEDIA_ERROR_NAMES.NOT_FOUND_ERROR]: number;
|
|
34
|
-
[BROWSER_MEDIA_ERROR_NAMES.OVERCONSTRAINED_ERROR]: number;
|
|
35
|
-
[BROWSER_MEDIA_ERROR_NAMES.SECURITY_ERROR]: number;
|
|
36
|
-
[BROWSER_MEDIA_ERROR_NAMES.TYPE_ERROR]: number;
|
|
19
|
+
[x: string]: number;
|
|
37
20
|
};
|
|
38
21
|
export declare const SDP_OFFER_CREATION_ERROR_MAP: {
|
|
39
22
|
GENERAL: number;
|
|
@@ -116,13 +99,16 @@ export declare const ERROR_DESCRIPTIONS: {
|
|
|
116
99
|
MULTISTREAM_NOT_AVAILABLE: string;
|
|
117
100
|
SDP_OFFER_CREATION_ERROR: string;
|
|
118
101
|
SDP_OFFER_CREATION_ERROR_MISSING_CODEC: string;
|
|
102
|
+
WEBRTC_API_NOT_AVAILABLE: string;
|
|
119
103
|
WDM_RESTRICTED_REGION: string;
|
|
120
104
|
USER_NOT_ALLOWED_JOIN_WEBINAR: string;
|
|
105
|
+
INVALID_MEETING_INFO: string;
|
|
121
106
|
};
|
|
122
107
|
export declare const SERVICE_ERROR_CODES_TO_CLIENT_ERROR_CODES_MAP: {
|
|
123
108
|
58400: number;
|
|
124
109
|
99002: number;
|
|
125
110
|
99009: number;
|
|
111
|
+
99019: number;
|
|
126
112
|
58500: number;
|
|
127
113
|
400001: number;
|
|
128
114
|
403004: number;
|
|
@@ -150,6 +136,7 @@ export declare const SERVICE_ERROR_CODES_TO_CLIENT_ERROR_CODES_MAP: {
|
|
|
150
136
|
423001: number;
|
|
151
137
|
423005: number;
|
|
152
138
|
423006: number;
|
|
139
|
+
423008: number;
|
|
153
140
|
423010: number;
|
|
154
141
|
423012: number;
|
|
155
142
|
423013: number;
|
|
@@ -163,6 +150,7 @@ export declare const SERVICE_ERROR_CODES_TO_CLIENT_ERROR_CODES_MAP: {
|
|
|
163
150
|
403037: number;
|
|
164
151
|
403003: number;
|
|
165
152
|
403030: number;
|
|
153
|
+
403106: number;
|
|
166
154
|
2403001: number;
|
|
167
155
|
2403002: number;
|
|
168
156
|
2403003: number;
|
|
@@ -214,4 +202,3 @@ export declare const SERVICE_ERROR_CODES_TO_CLIENT_ERROR_CODES_MAP: {
|
|
|
214
202
|
export declare const CLIENT_ERROR_CODE_TO_ERROR_PAYLOAD: Record<number, Partial<ClientEventError>>;
|
|
215
203
|
export declare const CALL_DIAGNOSTIC_EVENT_FAILED_TO_SEND = "js_sdk_call_diagnostic_event_failed_to_send";
|
|
216
204
|
export declare const CALL_FEATURE_EVENT_FAILED_TO_SEND = "js_sdk_call_feature_event_failed_to_send";
|
|
217
|
-
export {};
|
package/dist/types/config.d.ts
CHANGED
|
@@ -2,29 +2,30 @@ export const CLIENT_NAME: "webex-js-sdk";
|
|
|
2
2
|
declare namespace _default {
|
|
3
3
|
export namespace device {
|
|
4
4
|
namespace preDiscoveryServices {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
const metricsServiceUrl: string;
|
|
6
|
+
const metrics: string;
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
9
|
export namespace metrics_1 {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
const appType: string;
|
|
11
|
+
const batcherWait: number;
|
|
12
|
+
const batcherMaxCalls: number;
|
|
13
|
+
const batcherMaxWait: number;
|
|
14
|
+
const batcherRetryPlateau: number;
|
|
15
|
+
const batcherRetryOnNetworkError: boolean;
|
|
16
|
+
const waitForServiceTimeout: number;
|
|
16
17
|
}
|
|
17
18
|
export { metrics_1 as metrics };
|
|
18
19
|
}
|
|
19
20
|
export default _default;
|
|
20
21
|
export namespace OS_NAME {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
const WINDOWS: string;
|
|
23
|
+
const MAC: string;
|
|
24
|
+
const IOS: string;
|
|
25
|
+
const ANDROID: string;
|
|
26
|
+
const CHROME: string;
|
|
27
|
+
const LINUX: string;
|
|
28
|
+
const OTHERS: string;
|
|
28
29
|
}
|
|
29
30
|
export const OSMap: {
|
|
30
31
|
'Chrome OS': string;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ import BehavioralMetrics from './behavioral-metrics';
|
|
|
13
13
|
import OperationalMetrics from './operational-metrics';
|
|
14
14
|
import BusinessMetrics from './business-metrics';
|
|
15
15
|
import RtcMetrics from './rtcMetrics';
|
|
16
|
+
import PreLoginMetrics from './prelogin-metrics';
|
|
16
17
|
export { default, getOSNameInternal } from './metrics';
|
|
17
|
-
export { config, CALL_DIAGNOSTIC_CONFIG, NewMetrics, Utils, CallDiagnosticUtils, CallDiagnosticLatencies, CallDiagnosticMetrics, BehavioralMetrics, OperationalMetrics, BusinessMetrics, RtcMetrics, };
|
|
18
|
+
export { config, CALL_DIAGNOSTIC_CONFIG, NewMetrics, Utils, CallDiagnosticUtils, CallDiagnosticLatencies, CallDiagnosticMetrics, BehavioralMetrics, OperationalMetrics, BusinessMetrics, RtcMetrics, PreLoginMetrics, };
|
|
18
19
|
export type { ClientEvent, ClientEventLeaveReason, SubmitBehavioralEvent, SubmitClientEvent, SubmitInternalEvent, SubmitMQE, SubmitOperationalEvent, SubmitBusinessEvent, PreComputedLatencies, SubmitFeatureEvent, };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ClientEvent as RawClientEvent, Event as RawEvent, MediaQualityEvent as RawMediaQualityEvent, FeatureEvent as RawFeatureEvent } from '@webex/event-dictionary-ts';
|
|
1
|
+
import type { ClientEvent as RawClientEvent, Event as RawEvent, MediaQualityEvent as RawMediaQualityEvent, FeatureEvent as RawFeatureEvent } from '@webex/event-dictionary-ts';
|
|
2
2
|
export type Event = Omit<RawEvent, 'event'> & {
|
|
3
3
|
event: RawClientEvent | RawMediaQualityEvent | RawFeatureEvent;
|
|
4
4
|
};
|
|
@@ -42,7 +42,7 @@ export type SubmitMQEOptions = {
|
|
|
42
42
|
globalMeetingId?: string;
|
|
43
43
|
};
|
|
44
44
|
export type InternalEvent = {
|
|
45
|
-
name: 'internal.client.meetinginfo.request' | 'internal.client.meetinginfo.response' | 'internal.register.device.request' | 'internal.register.device.response' | 'internal.reset.join.latencies' | 'internal.
|
|
45
|
+
name: 'internal.client.meetinginfo.request' | 'internal.client.meetinginfo.response' | 'internal.register.device.request' | 'internal.register.device.response' | 'internal.reset.join.latencies' | 'internal.host.meeting.participant.admitted' | 'internal.client.meeting.interstitial-window.showed' | 'internal.client.interstitial-window.click.joinbutton' | 'internal.client.add-media.turn-discovery.start' | 'internal.client.add-media.turn-discovery.end' | 'internal.client.share.initiated' | 'internal.client.share.stopped';
|
|
46
46
|
payload?: never;
|
|
47
47
|
options?: never;
|
|
48
48
|
};
|
|
@@ -73,7 +73,7 @@ export interface BusinessEventPayload {
|
|
|
73
73
|
metricName: string;
|
|
74
74
|
timestamp: number;
|
|
75
75
|
context: DeviceContext;
|
|
76
|
-
browserDetails:
|
|
76
|
+
browserDetails: object;
|
|
77
77
|
value: EventPayload;
|
|
78
78
|
}
|
|
79
79
|
export interface BusinessEvent {
|
|
@@ -154,7 +154,7 @@ export type BuildClientEventFetchRequestOptions = (args: {
|
|
|
154
154
|
payload?: RecursivePartial<ClientEvent['payload']>;
|
|
155
155
|
options?: SubmitClientEventOptions;
|
|
156
156
|
}) => Promise<any>;
|
|
157
|
-
export type PreComputedLatencies = 'internal.client.pageJMT' | 'internal.download.time' | 'internal.get.cluster.time' | 'internal.click.to.interstitial' | 'internal.click.to.interstitial.with.user.delay' | 'internal.refresh.captcha.time' | 'internal.exchange.ci.token.time' | 'internal.get.u2c.time' | 'internal.call.init.join.req' | 'internal.other.app.api.time' | 'internal.api.fetch.intelligence.models';
|
|
157
|
+
export type PreComputedLatencies = 'internal.client.pageJMT' | 'internal.download.time' | 'internal.get.cluster.time' | 'internal.click.to.interstitial' | 'internal.click.to.interstitial.with.user.delay' | 'internal.click.to.interstitial.for.client.jmt' | 'internal.refresh.captcha.time' | 'internal.exchange.ci.token.time' | 'internal.get.u2c.time' | 'internal.call.init.join.req' | 'internal.other.app.api.time' | 'internal.api.fetch.intelligence.models';
|
|
158
158
|
export interface IdType {
|
|
159
159
|
meetingId?: string;
|
|
160
160
|
callId?: string;
|
|
@@ -3,6 +3,7 @@ import CallDiagnosticMetrics from './call-diagnostic/call-diagnostic-metrics';
|
|
|
3
3
|
import BehavioralMetrics from './behavioral-metrics';
|
|
4
4
|
import OperationalMetrics from './operational-metrics';
|
|
5
5
|
import BusinessMetrics from './business-metrics';
|
|
6
|
+
import PreLoginMetrics from './prelogin-metrics';
|
|
6
7
|
import { RecursivePartial, MetricEventProduct, MetricEventAgent, MetricEventVerb, ClientEvent, FeatureEvent, EventPayload, MediaQualityEvent, InternalEvent, SubmitClientEventOptions, Table, DelayedClientEvent, DelayedClientFeatureEvent } from './metrics.types';
|
|
7
8
|
import CallDiagnosticLatencies from './call-diagnostic/call-diagnostic-metrics-latencies';
|
|
8
9
|
/**
|
|
@@ -17,6 +18,7 @@ declare class Metrics extends WebexPlugin {
|
|
|
17
18
|
behavioralMetrics: BehavioralMetrics;
|
|
18
19
|
operationalMetrics: OperationalMetrics;
|
|
19
20
|
businessMetrics: BusinessMetrics;
|
|
21
|
+
preLoginMetrics: PreLoginMetrics;
|
|
20
22
|
isReady: boolean;
|
|
21
23
|
/**
|
|
22
24
|
* Whether or not to delay the submission of client events.
|
|
@@ -105,6 +107,16 @@ declare class Metrics extends WebexPlugin {
|
|
|
105
107
|
table?: Table;
|
|
106
108
|
metadata?: EventPayload;
|
|
107
109
|
}): Promise<void>;
|
|
110
|
+
/**
|
|
111
|
+
* Call Analyzer: Pre-Login Event
|
|
112
|
+
* @param args
|
|
113
|
+
*/
|
|
114
|
+
submitPreLoginEvent({ name, preLoginId, payload, metadata, }: {
|
|
115
|
+
name: string;
|
|
116
|
+
preLoginId: string;
|
|
117
|
+
payload: EventPayload;
|
|
118
|
+
metadata?: EventPayload;
|
|
119
|
+
}): Promise<void>;
|
|
108
120
|
/**
|
|
109
121
|
* Call Analyzer: Media Quality Event
|
|
110
122
|
* @param args
|