@webex/calling 3.12.0-mobius-socket.13 → 3.12.0-mobius-socket.15

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.
Files changed (29) hide show
  1. package/dist/CallingClient/CallingClient.js +15 -7
  2. package/dist/CallingClient/CallingClient.js.map +1 -1
  3. package/dist/CallingClient/registration/register.js +122 -2
  4. package/dist/CallingClient/registration/register.js.map +1 -1
  5. package/dist/CallingClient/registration/register.test.js +178 -0
  6. package/dist/CallingClient/registration/register.test.js.map +1 -1
  7. package/dist/CallingClient/registration/types.js.map +1 -1
  8. package/dist/CallingClient/utils/request.js +14 -2
  9. package/dist/CallingClient/utils/request.js.map +1 -1
  10. package/dist/Metrics/index.js +60 -0
  11. package/dist/Metrics/index.js.map +1 -1
  12. package/dist/Metrics/types.js +11 -1
  13. package/dist/Metrics/types.js.map +1 -1
  14. package/dist/module/CallingClient/CallingClient.js +9 -2
  15. package/dist/module/CallingClient/registration/register.js +47 -3
  16. package/dist/module/CallingClient/utils/request.js +10 -0
  17. package/dist/module/Metrics/index.js +46 -0
  18. package/dist/module/Metrics/types.js +10 -0
  19. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  20. package/dist/types/CallingClient/registration/register.d.ts +4 -0
  21. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  22. package/dist/types/CallingClient/registration/types.d.ts +2 -0
  23. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  24. package/dist/types/CallingClient/utils/request.d.ts +1 -0
  25. package/dist/types/CallingClient/utils/request.d.ts.map +1 -1
  26. package/dist/types/Metrics/index.d.ts.map +1 -1
  27. package/dist/types/Metrics/types.d.ts +11 -1
  28. package/dist/types/Metrics/types.d.ts.map +1 -1
  29. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {Devices, IDeviceInfo, RegistrationStatus} from '../../common/types';\n\nexport type Header = {\n [key: string]: string;\n};\n\nexport type restoreRegistrationCallBack = (\n restoreData: IDeviceInfo,\n caller: string\n) => Promise<boolean>;\n\nexport type retry429CallBack = (retryAfter: number, caller: string) => Promise<void>;\n\nexport type FailoverCacheState = {\n attempt: number;\n timeElapsed: number;\n retryScheduledTime: number;\n serverType: 'primary' | 'backup';\n};\n\n/**\n * Represents an interface for managing registration-related operations.\n */\nexport interface IRegistration {\n /**\n * Sets the primary and backup Mobius server URLs.\n *\n * @param primaryMobiusUris - An array of primary Mobius server URLs.\n * @param backupMobiusUris - An array of backup Mobius server URLs.\n */\n setMobiusServers(primaryMobiusUris: string[], backupMobiusUris: string[]): void;\n\n /**\n * Triggers the registration process with the given list of servers\n * Registration is attempted with primary and backup until it succeeds or the list is exhausted\n */\n triggerRegistration(): Promise<void>;\n\n /**\n * Checks if the device is currently registered.\n *\n */\n isDeviceRegistered(): boolean;\n\n /**\n * Sets the status of the registration.\n *\n * @param value - The registration status to set.\n */\n setStatus(value: RegistrationStatus): void;\n\n /**\n * Retrieves the current registration status.\n *\n */\n getStatus(): RegistrationStatus;\n\n /**\n * Retrieves information about the device as {@link IDeviceInfo}.\n *\n */\n getDeviceInfo(): IDeviceInfo;\n\n /**\n * Clears the keep-alive timer used for registration.\n */\n clearKeepaliveTimer(): void;\n\n /**\n * Deregisters the device.\n */\n deregister(): void;\n\n /**\n * Sets the active Mobius server URL to use for registration.\n *\n * @param url - The Mobius server URL to set as active.\n */\n setActiveMobiusUrl(url: string): void;\n\n /**\n * Retrieves the active Mobius server URL.\n *\n */\n getActiveMobiusUrl(): string;\n\n /**\n * Attempts to reconnect after a connection failure.\n *\n * @param caller - The caller's identifier for reconnection.\n */\n reconnectOnFailure(caller: string): Promise<void>;\n\n /**\n * Checks if a reconnection attempt is pending.\n *\n */\n isReconnectPending(): boolean;\n\n /**\n * Restores the connection and attempts refreshing existing registration with server.\n * Allows retry if not restored in the first attempt.\n *\n * @param retry - Set to `true` to trigger a retry after restoration.\n */\n handleConnectionRestoration(retry: boolean): Promise<boolean>;\n\n /**\n * Populate deviceInfo from a devices response (e.g., getDevices API).\n */\n setDeviceInfo(body: Devices): void;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {Devices, IDeviceInfo, RegistrationStatus} from '../../common/types';\nimport {MobiusAsyncEvent} from '../calling/types';\n\nexport type Header = {\n [key: string]: string;\n};\n\nexport type restoreRegistrationCallBack = (\n restoreData: IDeviceInfo,\n caller: string\n) => Promise<boolean>;\n\nexport type retry429CallBack = (retryAfter: number, caller: string) => Promise<void>;\n\nexport type FailoverCacheState = {\n attempt: number;\n timeElapsed: number;\n retryScheduledTime: number;\n serverType: 'primary' | 'backup';\n};\n\n/**\n * Represents an interface for managing registration-related operations.\n */\nexport interface IRegistration {\n /**\n * Sets the primary and backup Mobius server URLs.\n *\n * @param primaryMobiusUris - An array of primary Mobius server URLs.\n * @param backupMobiusUris - An array of backup Mobius server URLs.\n */\n setMobiusServers(primaryMobiusUris: string[], backupMobiusUris: string[]): void;\n\n /**\n * Triggers the registration process with the given list of servers\n * Registration is attempted with primary and backup until it succeeds or the list is exhausted\n */\n triggerRegistration(): Promise<void>;\n\n /**\n * Checks if the device is currently registered.\n *\n */\n isDeviceRegistered(): boolean;\n\n /**\n * Sets the status of the registration.\n *\n * @param value - The registration status to set.\n */\n setStatus(value: RegistrationStatus): void;\n\n /**\n * Retrieves the current registration status.\n *\n */\n getStatus(): RegistrationStatus;\n\n /**\n * Retrieves information about the device as {@link IDeviceInfo}.\n *\n */\n getDeviceInfo(): IDeviceInfo;\n\n /**\n * Clears the keep-alive timer used for registration.\n */\n clearKeepaliveTimer(): void;\n\n /**\n * Deregisters the device.\n */\n deregister(): void;\n\n /**\n * Sets the active Mobius server URL to use for registration.\n *\n * @param url - The Mobius server URL to set as active.\n */\n setActiveMobiusUrl(url: string): void;\n\n /**\n * Retrieves the active Mobius server URL.\n *\n */\n getActiveMobiusUrl(): string;\n\n /**\n * Attempts to reconnect after a connection failure.\n *\n * @param caller - The caller's identifier for reconnection.\n */\n reconnectOnFailure(caller: string): Promise<void>;\n\n /**\n * Checks if a reconnection attempt is pending.\n *\n */\n isReconnectPending(): boolean;\n\n /**\n * Restores the connection and attempts refreshing existing registration with server.\n * Allows retry if not restored in the first attempt.\n *\n * @param retry - Set to `true` to trigger a retry after restoration.\n */\n handleConnectionRestoration(retry: boolean): Promise<boolean>;\n\n /**\n * Populate deviceInfo from a devices response (e.g., getDevices API).\n */\n setDeviceInfo(body: Devices): void;\n\n /**\n * Handles a Mobius REGISTRATION_DOWN async event. Ends the first active\n * call (if any) and runs registration-side cleanup.\n *\n * @param event - The Mobius async event payload (optional).\n */\n handleRegistrationDownEvent(event?: MobiusAsyncEvent): Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -23,6 +23,8 @@ var _mobiusSocketMapper = require("./mobiusSocketMapper");
23
23
  var _constants = require("./constants");
24
24
  var _wsFeatureFlag = require("./wsFeatureFlag");
25
25
  var _constants2 = require("../constants");
26
+ var _Metrics = require("../../Metrics");
27
+ var _types = require("../../Metrics/types");
26
28
  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; }
27
29
  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; }
28
30
  /**
@@ -71,6 +73,7 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
71
73
  (0, _defineProperty2.default)(this, "webex", void 0);
72
74
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
75
  (0, _defineProperty2.default)(this, "mobiusSocket", void 0);
76
+ (0, _defineProperty2.default)(this, "metricManager", void 0);
74
77
  var logContext = {
75
78
  file: _constants2.REQUEST_FILE,
76
79
  method: _constants2.METHODS.CONSTRUCTOR
@@ -82,6 +85,7 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
82
85
  this.webex = config.webex;
83
86
  this.isMobiusSocketEnabled = (0, _wsFeatureFlag.isMobiusWssEnabled)(config.webex) || false;
84
87
  this.mobiusSocket = (0, _mobiusSocket.getMobiusSocketInstance)(this.webex);
88
+ this.metricManager = (0, _Metrics.getMetricManager)(this.webex);
85
89
  _Logger.default.info("APIRequest initialized with transport: ".concat(this.isMobiusSocketEnabled ? 'WSS' : 'HTTP'), logContext);
86
90
  }
87
91
 
@@ -106,7 +110,7 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
106
110
  key: "connectToMobiusSocket",
107
111
  value: (function () {
108
112
  var _connectToMobiusSocket = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(wssUrl) {
109
- var logContext, _t;
113
+ var logContext, _this$metricManager, _this$metricManager2, _t;
110
114
  return _regenerator.default.wrap(function (_context) {
111
115
  while (1) switch (_context.prev = _context.next) {
112
116
  case 0:
@@ -127,11 +131,13 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
127
131
  return this.mobiusSocket.connect(wssUrl);
128
132
  case 3:
129
133
  _Logger.default.log('Mobius WebSocket connected successfully', logContext);
134
+ (_this$metricManager = this.metricManager) === null || _this$metricManager === void 0 ? void 0 : _this$metricManager.submitMobiusSocketMetric(_types.METRIC_EVENT.MOBIUS_SOCKET, _types.MOBIUS_SOCKET_ACTION.CONNECT, _types.METRIC_TYPE.BEHAVIORAL, wssUrl);
130
135
  return _context.abrupt("return", wssUrl);
131
136
  case 4:
132
137
  _context.prev = 4;
133
138
  _t = _context["catch"](2);
134
139
  _Logger.default.warn("Mobius WebSocket connection failed: ".concat(String(_t)), logContext);
140
+ (_this$metricManager2 = this.metricManager) === null || _this$metricManager2 === void 0 ? void 0 : _this$metricManager2.submitMobiusSocketMetric(_types.METRIC_EVENT.MOBIUS_SOCKET_ERROR, _types.MOBIUS_SOCKET_ACTION.CONNECT, _types.METRIC_TYPE.BEHAVIORAL, wssUrl, undefined, String(_t));
135
141
  throw normalizeWsError(_t);
136
142
  case 5:
137
143
  case "end":
@@ -152,7 +158,7 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
152
158
  key: "disconnectFromMobiusSocket",
153
159
  value: (function () {
154
160
  var _disconnectFromMobiusSocket = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(options) {
155
- var logContext, _t2;
161
+ var logContext, _this$metricManager3, _this$metricManager4, _t2;
156
162
  return _regenerator.default.wrap(function (_context2) {
157
163
  while (1) switch (_context2.prev = _context2.next) {
158
164
  case 0:
@@ -166,6 +172,7 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
166
172
  return this.mobiusSocket.disconnect(options);
167
173
  case 2:
168
174
  _Logger.default.log('Mobius WebSocket disconnected successfully', logContext);
175
+ (_this$metricManager3 = this.metricManager) === null || _this$metricManager3 === void 0 ? void 0 : _this$metricManager3.submitMobiusSocketMetric(_types.METRIC_EVENT.MOBIUS_SOCKET, _types.MOBIUS_SOCKET_ACTION.DISCONNECT, _types.METRIC_TYPE.BEHAVIORAL);
169
176
  _context2.next = 4;
170
177
  break;
171
178
  case 3:
@@ -173,6 +180,7 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
173
180
  _t2 = _context2["catch"](1);
174
181
  // silent error - no need to throw an error
175
182
  _Logger.default.warn("Mobius WebSocket disconnection failed: ".concat(String(_t2)), logContext);
183
+ (_this$metricManager4 = this.metricManager) === null || _this$metricManager4 === void 0 ? void 0 : _this$metricManager4.submitMobiusSocketMetric(_types.METRIC_EVENT.MOBIUS_SOCKET_ERROR, _types.MOBIUS_SOCKET_ACTION.DISCONNECT, _types.METRIC_TYPE.BEHAVIORAL, undefined, undefined, String(_t2));
176
184
  case 4:
177
185
  case "end":
178
186
  return _context2.stop();
@@ -283,6 +291,7 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
283
291
  }, {
284
292
  key: "registerMobiusSocketListener",
285
293
  value: function registerMobiusSocketListener(cb) {
294
+ var _this$metricManager5;
286
295
  var logContext = {
287
296
  file: _constants2.REQUEST_FILE,
288
297
  method: _constants2.METHODS.REGISTER_MOBIUS_SOCKET_LISTENER
@@ -294,10 +303,12 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
294
303
  cb(data);
295
304
  });
296
305
  _Logger.default.log('Mobius async event listener attached', logContext);
306
+ (_this$metricManager5 = this.metricManager) === null || _this$metricManager5 === void 0 ? void 0 : _this$metricManager5.submitMobiusSocketMetric(_types.METRIC_EVENT.MOBIUS_SOCKET, _types.MOBIUS_SOCKET_ACTION.LISTENER_REGISTERED, _types.METRIC_TYPE.BEHAVIORAL);
297
307
  }
298
308
  }, {
299
309
  key: "unregisterMobiusSocketListener",
300
310
  value: function unregisterMobiusSocketListener() {
311
+ var _this$metricManager6;
301
312
  var logContext = {
302
313
  file: _constants2.REQUEST_FILE,
303
314
  method: _constants2.METHODS.UNREGISTER_MOBIUS_SOCKET_LISTENER
@@ -305,6 +316,7 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
305
316
  _Logger.default.info('Detaching Mobius async event listener', logContext);
306
317
  this.mobiusSocket.off('event:async_event');
307
318
  _Logger.default.log('Mobius async event listener detached', logContext);
319
+ (_this$metricManager6 = this.metricManager) === null || _this$metricManager6 === void 0 ? void 0 : _this$metricManager6.submitMobiusSocketMetric(_types.METRIC_EVENT.MOBIUS_SOCKET, _types.MOBIUS_SOCKET_ACTION.LISTENER_UNREGISTERED, _types.METRIC_TYPE.BEHAVIORAL);
308
320
  }
309
321
  }], [{
310
322
  key: "getInstance",
@@ -1 +1 @@
1
- {"version":3,"names":["_uuid","require","_mobiusSocket","_Logger","_interopRequireDefault","_mobiusSocketMapper","_constants","_wsFeatureFlag","_constants2","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","normalizeWsResponse","wsResponse","_ref","_ref2","statusCode","body","data","undefined","headers","trackingid","trackingId","metadata","normalizeWsError","err","_ref3","_wsErr$response","_ref4","_wsErr$trackingId","_wsErr$response2","_ref5","_wsErr$response3","wsErr","response","APIRequest","exports","config","_classCallCheck2","logContext","file","REQUEST_FILE","method","METHODS","CONSTRUCTOR","webex","log","error","Error","isMobiusSocketEnabled","isMobiusWssEnabled","mobiusSocket","getMobiusSocketInstance","info","concat","_createClass2","key","value","isSocketEnabled","_connectToMobiusSocket","_asyncToGenerator2","_regenerator","mark","_callee","wssUrl","_t","wrap","_context","prev","next","CONNECT_TO_MOBIUS_SOCKET","isConnected","abrupt","getConnectedWebSocketUrl","connect","warn","String","stop","connectToMobiusSocket","_x","_disconnectFromMobiusSocket","_callee2","options","_t2","_context2","DISCONNECT_FROM_MOBIUS_SOCKET","disconnect","disconnectFromMobiusSocket","_x2","_makeRequest","_callee3","request","socketType","isSupplementaryService","_t3","_t4","_t5","_t6","_t7","_t8","_t9","_t0","_t1","_t10","_t11","_t12","_t13","_t14","_context3","MAKE_REQUEST","uuid","deriveMobiusSocketMessageType","uri","MOBIUS_SOCKET_MESSAGE_TYPE","UNKNOWN","isSupplementaryServiceMessageType","CALLING_USER_AGENT","credentials","getUserToken","sent","call","userAgent","authorization","sendWssRequest","type","makeRequest","_x3","registerMobiusSocketListener","cb","REGISTER_MOBIUS_SOCKET_LISTENER","on","_data$data$eventType","_data$data","trace","eventType","unregisterMobiusSocketListener","UNREGISTER_MOBIUS_SOCKET_LISTENER","off","getInstance","instance","resetInstance","createAPIRequest"],"sources":["request.ts"],"sourcesContent":["import {v4 as uuid} from 'uuid';\nimport {getMobiusSocketInstance} from '../../mobius-socket';\nimport {WebexRequestPayload} from '../../common/types';\nimport {WebexSDK} from '../../SDKConnector/types';\nimport log from '../../Logger';\nimport {APIRequestConfig, APIRequestOptions, MobiusAsyncEvent, MobiusSocketResponse} from './types';\nimport {\n deriveMobiusSocketMessageType,\n isSupplementaryServiceMessageType,\n} from './mobiusSocketMapper';\nimport {MOBIUS_SOCKET_MESSAGE_TYPE} from './constants';\nimport {isMobiusWssEnabled} from './wsFeatureFlag';\nimport {CALLING_USER_AGENT, METHODS, REQUEST_FILE} from '../constants';\n\n/**\n * Converts a MobiusSocketResponse into the WebexRequestPayload shape that\n * all callers (registration, call, keepalive error-handlers) expect.\n */\nfunction normalizeWsResponse(wsResponse: MobiusSocketResponse): WebexRequestPayload {\n return {\n statusCode: wsResponse.statusCode,\n body: (wsResponse.data as object) ?? undefined,\n headers: {\n trackingid: wsResponse.trackingId,\n ...((wsResponse.metadata as Record<string, string>) ?? {}),\n },\n };\n}\n\n/**\n * Converts a MobiusSocketResponseError rejection into a WebexRequestPayload-shaped\n * error so handleRegistrationErrors / handleCallErrors can process it identically.\n */\nfunction normalizeWsError(err: unknown): WebexRequestPayload {\n const wsErr = err as {\n statusCode?: number;\n statusMessage?: string;\n response?: MobiusSocketResponse;\n trackingId?: string;\n };\n\n return {\n statusCode: wsErr.statusCode,\n body: (wsErr.response?.data as object) ?? undefined,\n headers: {\n trackingid: wsErr.trackingId ?? wsErr.response?.trackingId ?? '',\n ...((wsErr.response?.metadata as Record<string, string>) ?? {}),\n },\n };\n}\n\n/**\n * APIRequest routes Mobius traffic over HTTP (`webex.request`) or the Mobius WebSocket path\n * (`mobiusSocketRequest`). `isMobiusSocketEnabled` is set in the constructor from WDM\n * `webrtc-calling-over-ws` and/or SDK config (interim until WDM is fully in prod).\n */\nexport class APIRequest {\n // eslint-disable-next-line no-use-before-define\n private static instance: APIRequest | undefined;\n private isMobiusSocketEnabled: boolean;\n private webex: WebexSDK;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private mobiusSocket: any;\n\n static getInstance(config: APIRequestConfig): APIRequest {\n if (!APIRequest.instance) {\n APIRequest.instance = new APIRequest(config);\n }\n\n return APIRequest.instance;\n }\n\n static resetInstance(): void {\n APIRequest.instance = undefined;\n }\n\n /**\n * @param config - Webex instance plus optional SDK Mobius-socket override\n */\n constructor(config: APIRequestConfig) {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.CONSTRUCTOR,\n };\n\n if (!config.webex) {\n log.error('APIRequest instantiation failed: WebexSDK instance is required', logContext);\n throw new Error('WebexSDK instance is required');\n }\n\n this.webex = config.webex;\n this.isMobiusSocketEnabled = isMobiusWssEnabled(config.webex) || false;\n this.mobiusSocket = getMobiusSocketInstance(this.webex);\n\n log.info(\n `APIRequest initialized with transport: ${this.isMobiusSocketEnabled ? 'WSS' : 'HTTP'}`,\n logContext\n );\n }\n\n /**\n * Whether the Mobius WebSocket transport is active for this instance.\n */\n public isSocketEnabled(): boolean {\n return this.isMobiusSocketEnabled;\n }\n\n /**\n * Ensures the Mobius WebSocket is connected before sending API requests.\n * If the socket is already connected, resolves immediately. Otherwise,\n * initiates a new connection to the provided WebSocket URL.\n * On failure, throws a normalized WebexRequestPayload-shaped error.\n *\n * @param wssUrl - The Mobius WebSocket URL to connect to.\n */\n public async connectToMobiusSocket(wssUrl: string): Promise<string | undefined> {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.CONNECT_TO_MOBIUS_SOCKET,\n };\n\n if (this.mobiusSocket.isConnected()) {\n log.info('Mobius WebSocket already connected', logContext);\n\n return this.mobiusSocket.getConnectedWebSocketUrl();\n }\n\n log.info('Mobius WebSocket not connected, initiating connection', logContext);\n\n try {\n await this.mobiusSocket.connect(wssUrl);\n log.log('Mobius WebSocket connected successfully', logContext);\n\n return wssUrl;\n } catch (err) {\n log.warn(`Mobius WebSocket connection failed: ${String(err)}`, logContext);\n throw normalizeWsError(err);\n }\n }\n\n /**\n * Disconnects the default session from the Mobius WebSocket.\n */\n public async disconnectFromMobiusSocket(options?: {code: number; reason: string}): Promise<void> {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.DISCONNECT_FROM_MOBIUS_SOCKET,\n };\n\n log.info('Disconnecting from Mobius WebSocket', logContext);\n\n try {\n await this.mobiusSocket.disconnect(options);\n log.log('Mobius WebSocket disconnected successfully', logContext);\n } catch (err) {\n // silent error - no need to throw an error\n log.warn(`Mobius WebSocket disconnection failed: ${String(err)}`, logContext);\n }\n }\n\n /**\n * Makes a request using HTTP or WebSocket transport per the flag set in the constructor.\n * When using WebSocket, the response is normalized to the WebexRequestPayload shape\n * so callers do not need to know which transport was used.\n * @param request - Request options (uri, method, body, headers, service)\n * @returns Promise resolving to WebexRequestPayload\n */\n public async makeRequest(request: APIRequestOptions): Promise<WebexRequestPayload> {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.MAKE_REQUEST,\n };\n log.info(`Dispatching request via ${this.isMobiusSocketEnabled ? 'WSS' : 'HTTP'} `, logContext);\n\n if (this.isMobiusSocketEnabled) {\n const trackingId = `webex-js-sdk_${uuid()}`;\n const socketType = deriveMobiusSocketMessageType(request.uri, request.method);\n\n if (socketType === MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN) {\n log.error(\n `Unknown Mobius Socket message type for uri: ${request.uri}, httpMethod: ${request.method}`,\n logContext\n );\n throw new Error(`Unknown Mobius Socket message type: ${socketType}`);\n }\n\n const isSupplementaryService = isSupplementaryServiceMessageType(socketType);\n\n try {\n const wsResponse: MobiusSocketResponse = await this.mobiusSocket.sendWssRequest({\n type: socketType,\n trackingId,\n metadata: {\n ...request.headers,\n userAgent: CALLING_USER_AGENT,\n authorization: `${\n (isSupplementaryService && (await this.webex.credentials.getUserToken())) || ''\n }`,\n },\n data: request.body,\n });\n\n log.log(\n `WSS request succeeded - socketType: ${socketType}, trackingId: ${trackingId}, statusCode: ${wsResponse.statusCode}`,\n logContext\n );\n\n return normalizeWsResponse(wsResponse);\n } catch (err) {\n log.error(\n `WSS request failed - socketType: ${socketType}, trackingId: ${trackingId}, error: ${String(\n err\n )}`,\n logContext\n );\n throw normalizeWsError(err);\n }\n }\n\n return this.webex.request(request) as Promise<WebexRequestPayload>;\n }\n\n public registerMobiusSocketListener(cb: (data?: MobiusAsyncEvent) => void): void {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.REGISTER_MOBIUS_SOCKET_LISTENER,\n };\n\n log.info('Attaching Mobius async event listener', logContext);\n\n this.mobiusSocket.on('event:async_event', (data: MobiusAsyncEvent) => {\n log.trace(\n `Mobius async event received - eventType: ${data?.data?.eventType ?? 'unknown'}`,\n logContext\n );\n cb(data);\n });\n\n log.log('Mobius async event listener attached', logContext);\n }\n\n public unregisterMobiusSocketListener(): void {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.UNREGISTER_MOBIUS_SOCKET_LISTENER,\n };\n\n log.info('Detaching Mobius async event listener', logContext);\n this.mobiusSocket.off('event:async_event');\n log.log('Mobius async event listener detached', logContext);\n }\n}\n\n/**\n * Factory function to create a singleton APIRequest instance\n * @param config - Configuration object for APIRequest\n * @returns APIRequest instance\n */\nexport const createAPIRequest = (config: APIRequestConfig): APIRequest =>\n APIRequest.getInstance(config);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_uuid","require","_mobiusSocket","_Logger","_interopRequireDefault","_mobiusSocketMapper","_constants","_wsFeatureFlag","_constants2","_Metrics","_types","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","normalizeWsResponse","wsResponse","_ref","_ref2","statusCode","body","data","undefined","headers","trackingid","trackingId","metadata","normalizeWsError","err","_ref3","_wsErr$response","_ref4","_wsErr$trackingId","_wsErr$response2","_ref5","_wsErr$response3","wsErr","response","APIRequest","exports","config","_classCallCheck2","logContext","file","REQUEST_FILE","method","METHODS","CONSTRUCTOR","webex","log","error","Error","isMobiusSocketEnabled","isMobiusWssEnabled","mobiusSocket","getMobiusSocketInstance","metricManager","getMetricManager","info","concat","_createClass2","key","value","isSocketEnabled","_connectToMobiusSocket","_asyncToGenerator2","_regenerator","mark","_callee","wssUrl","_this$metricManager","_this$metricManager2","_t","wrap","_context","prev","next","CONNECT_TO_MOBIUS_SOCKET","isConnected","abrupt","getConnectedWebSocketUrl","connect","submitMobiusSocketMetric","METRIC_EVENT","MOBIUS_SOCKET","MOBIUS_SOCKET_ACTION","CONNECT","METRIC_TYPE","BEHAVIORAL","warn","String","MOBIUS_SOCKET_ERROR","stop","connectToMobiusSocket","_x","_disconnectFromMobiusSocket","_callee2","options","_this$metricManager3","_this$metricManager4","_t2","_context2","DISCONNECT_FROM_MOBIUS_SOCKET","disconnect","DISCONNECT","disconnectFromMobiusSocket","_x2","_makeRequest","_callee3","request","socketType","isSupplementaryService","_t3","_t4","_t5","_t6","_t7","_t8","_t9","_t0","_t1","_t10","_t11","_t12","_t13","_t14","_context3","MAKE_REQUEST","uuid","deriveMobiusSocketMessageType","uri","MOBIUS_SOCKET_MESSAGE_TYPE","UNKNOWN","isSupplementaryServiceMessageType","CALLING_USER_AGENT","credentials","getUserToken","sent","call","userAgent","authorization","sendWssRequest","type","makeRequest","_x3","registerMobiusSocketListener","cb","_this$metricManager5","REGISTER_MOBIUS_SOCKET_LISTENER","on","_data$data$eventType","_data$data","trace","eventType","LISTENER_REGISTERED","unregisterMobiusSocketListener","_this$metricManager6","UNREGISTER_MOBIUS_SOCKET_LISTENER","off","LISTENER_UNREGISTERED","getInstance","instance","resetInstance","createAPIRequest"],"sources":["request.ts"],"sourcesContent":["import {v4 as uuid} from 'uuid';\nimport {getMobiusSocketInstance} from '../../mobius-socket';\nimport {WebexRequestPayload} from '../../common/types';\nimport {WebexSDK} from '../../SDKConnector/types';\nimport log from '../../Logger';\nimport {APIRequestConfig, APIRequestOptions, MobiusAsyncEvent, MobiusSocketResponse} from './types';\nimport {\n deriveMobiusSocketMessageType,\n isSupplementaryServiceMessageType,\n} from './mobiusSocketMapper';\nimport {MOBIUS_SOCKET_MESSAGE_TYPE} from './constants';\nimport {isMobiusWssEnabled} from './wsFeatureFlag';\nimport {CALLING_USER_AGENT, METHODS, REQUEST_FILE} from '../constants';\nimport {getMetricManager} from '../../Metrics';\nimport {IMetricManager, METRIC_EVENT, METRIC_TYPE, MOBIUS_SOCKET_ACTION} from '../../Metrics/types';\n\n/**\n * Converts a MobiusSocketResponse into the WebexRequestPayload shape that\n * all callers (registration, call, keepalive error-handlers) expect.\n */\nfunction normalizeWsResponse(wsResponse: MobiusSocketResponse): WebexRequestPayload {\n return {\n statusCode: wsResponse.statusCode,\n body: (wsResponse.data as object) ?? undefined,\n headers: {\n trackingid: wsResponse.trackingId,\n ...((wsResponse.metadata as Record<string, string>) ?? {}),\n },\n };\n}\n\n/**\n * Converts a MobiusSocketResponseError rejection into a WebexRequestPayload-shaped\n * error so handleRegistrationErrors / handleCallErrors can process it identically.\n */\nfunction normalizeWsError(err: unknown): WebexRequestPayload {\n const wsErr = err as {\n statusCode?: number;\n statusMessage?: string;\n response?: MobiusSocketResponse;\n trackingId?: string;\n };\n\n return {\n statusCode: wsErr.statusCode,\n body: (wsErr.response?.data as object) ?? undefined,\n headers: {\n trackingid: wsErr.trackingId ?? wsErr.response?.trackingId ?? '',\n ...((wsErr.response?.metadata as Record<string, string>) ?? {}),\n },\n };\n}\n\n/**\n * APIRequest routes Mobius traffic over HTTP (`webex.request`) or the Mobius WebSocket path\n * (`mobiusSocketRequest`). `isMobiusSocketEnabled` is set in the constructor from WDM\n * `webrtc-calling-over-ws` and/or SDK config (interim until WDM is fully in prod).\n */\nexport class APIRequest {\n // eslint-disable-next-line no-use-before-define\n private static instance: APIRequest | undefined;\n private isMobiusSocketEnabled: boolean;\n private webex: WebexSDK;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private mobiusSocket: any;\n private metricManager: IMetricManager;\n\n static getInstance(config: APIRequestConfig): APIRequest {\n if (!APIRequest.instance) {\n APIRequest.instance = new APIRequest(config);\n }\n\n return APIRequest.instance;\n }\n\n static resetInstance(): void {\n APIRequest.instance = undefined;\n }\n\n /**\n * @param config - Webex instance plus optional SDK Mobius-socket override\n */\n constructor(config: APIRequestConfig) {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.CONSTRUCTOR,\n };\n\n if (!config.webex) {\n log.error('APIRequest instantiation failed: WebexSDK instance is required', logContext);\n throw new Error('WebexSDK instance is required');\n }\n\n this.webex = config.webex;\n this.isMobiusSocketEnabled = isMobiusWssEnabled(config.webex) || false;\n this.mobiusSocket = getMobiusSocketInstance(this.webex);\n this.metricManager = getMetricManager(this.webex);\n\n log.info(\n `APIRequest initialized with transport: ${this.isMobiusSocketEnabled ? 'WSS' : 'HTTP'}`,\n logContext\n );\n }\n\n /**\n * Whether the Mobius WebSocket transport is active for this instance.\n */\n public isSocketEnabled(): boolean {\n return this.isMobiusSocketEnabled;\n }\n\n /**\n * Ensures the Mobius WebSocket is connected before sending API requests.\n * If the socket is already connected, resolves immediately. Otherwise,\n * initiates a new connection to the provided WebSocket URL.\n * On failure, throws a normalized WebexRequestPayload-shaped error.\n *\n * @param wssUrl - The Mobius WebSocket URL to connect to.\n */\n public async connectToMobiusSocket(wssUrl: string): Promise<string | undefined> {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.CONNECT_TO_MOBIUS_SOCKET,\n };\n\n if (this.mobiusSocket.isConnected()) {\n log.info('Mobius WebSocket already connected', logContext);\n\n return this.mobiusSocket.getConnectedWebSocketUrl();\n }\n\n log.info('Mobius WebSocket not connected, initiating connection', logContext);\n\n try {\n await this.mobiusSocket.connect(wssUrl);\n log.log('Mobius WebSocket connected successfully', logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.CONNECT,\n METRIC_TYPE.BEHAVIORAL,\n wssUrl\n );\n\n return wssUrl;\n } catch (err) {\n log.warn(`Mobius WebSocket connection failed: ${String(err)}`, logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET_ERROR,\n MOBIUS_SOCKET_ACTION.CONNECT,\n METRIC_TYPE.BEHAVIORAL,\n wssUrl,\n undefined,\n String(err)\n );\n\n throw normalizeWsError(err);\n }\n }\n\n /**\n * Disconnects the default session from the Mobius WebSocket.\n */\n public async disconnectFromMobiusSocket(options?: {code: number; reason: string}): Promise<void> {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.DISCONNECT_FROM_MOBIUS_SOCKET,\n };\n\n log.info('Disconnecting from Mobius WebSocket', logContext);\n\n try {\n await this.mobiusSocket.disconnect(options);\n log.log('Mobius WebSocket disconnected successfully', logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.DISCONNECT,\n METRIC_TYPE.BEHAVIORAL\n );\n } catch (err) {\n // silent error - no need to throw an error\n log.warn(`Mobius WebSocket disconnection failed: ${String(err)}`, logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET_ERROR,\n MOBIUS_SOCKET_ACTION.DISCONNECT,\n METRIC_TYPE.BEHAVIORAL,\n undefined,\n undefined,\n String(err)\n );\n }\n }\n\n /**\n * Makes a request using HTTP or WebSocket transport per the flag set in the constructor.\n * When using WebSocket, the response is normalized to the WebexRequestPayload shape\n * so callers do not need to know which transport was used.\n * @param request - Request options (uri, method, body, headers, service)\n * @returns Promise resolving to WebexRequestPayload\n */\n public async makeRequest(request: APIRequestOptions): Promise<WebexRequestPayload> {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.MAKE_REQUEST,\n };\n log.info(`Dispatching request via ${this.isMobiusSocketEnabled ? 'WSS' : 'HTTP'} `, logContext);\n\n if (this.isMobiusSocketEnabled) {\n const trackingId = `webex-js-sdk_${uuid()}`;\n const socketType = deriveMobiusSocketMessageType(request.uri, request.method);\n\n if (socketType === MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN) {\n log.error(\n `Unknown Mobius Socket message type for uri: ${request.uri}, httpMethod: ${request.method}`,\n logContext\n );\n throw new Error(`Unknown Mobius Socket message type: ${socketType}`);\n }\n\n const isSupplementaryService = isSupplementaryServiceMessageType(socketType);\n\n try {\n const wsResponse: MobiusSocketResponse = await this.mobiusSocket.sendWssRequest({\n type: socketType,\n trackingId,\n metadata: {\n ...request.headers,\n userAgent: CALLING_USER_AGENT,\n authorization: `${\n (isSupplementaryService && (await this.webex.credentials.getUserToken())) || ''\n }`,\n },\n data: request.body,\n });\n\n log.log(\n `WSS request succeeded - socketType: ${socketType}, trackingId: ${trackingId}, statusCode: ${wsResponse.statusCode}`,\n logContext\n );\n\n return normalizeWsResponse(wsResponse);\n } catch (err) {\n log.error(\n `WSS request failed - socketType: ${socketType}, trackingId: ${trackingId}, error: ${String(\n err\n )}`,\n logContext\n );\n throw normalizeWsError(err);\n }\n }\n\n return this.webex.request(request) as Promise<WebexRequestPayload>;\n }\n\n public registerMobiusSocketListener(cb: (data?: MobiusAsyncEvent) => void): void {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.REGISTER_MOBIUS_SOCKET_LISTENER,\n };\n\n log.info('Attaching Mobius async event listener', logContext);\n\n this.mobiusSocket.on('event:async_event', (data: MobiusAsyncEvent) => {\n log.trace(\n `Mobius async event received - eventType: ${data?.data?.eventType ?? 'unknown'}`,\n logContext\n );\n cb(data);\n });\n\n log.log('Mobius async event listener attached', logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.LISTENER_REGISTERED,\n METRIC_TYPE.BEHAVIORAL\n );\n }\n\n public unregisterMobiusSocketListener(): void {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.UNREGISTER_MOBIUS_SOCKET_LISTENER,\n };\n\n log.info('Detaching Mobius async event listener', logContext);\n this.mobiusSocket.off('event:async_event');\n log.log('Mobius async event listener detached', logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.LISTENER_UNREGISTERED,\n METRIC_TYPE.BEHAVIORAL\n );\n }\n}\n\n/**\n * Factory function to create a singleton APIRequest instance\n * @param config - Configuration object for APIRequest\n * @returns APIRequest instance\n */\nexport const createAPIRequest = (config: APIRequestConfig): APIRequest =>\n APIRequest.getInstance(config);\n"],"mappings":"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","ignoreList":[]}
@@ -518,6 +518,66 @@ var MetricManager = /*#__PURE__*/function () {
518
518
  this.webex.internal.metrics.submitClientMetrics(name, data);
519
519
  }
520
520
  }
521
+
522
+ /**
523
+ * @param name - Name of the metric being submitted (MOBIUS_SOCKET or MOBIUS_SOCKET_ERROR).
524
+ * @param metricAction - Type of Mobius WebSocket action.
525
+ * @param type - Type of metric.
526
+ * @param wssUrl - The Mobius WebSocket URL involved in the action.
527
+ * @param trackingId - Tracking ID associated with the operation, if any.
528
+ * @param error - Error string used to populate error details (for MOBIUS_SOCKET_ERROR).
529
+ * @param eventType - Type of async event received over the socket, if applicable.
530
+ */
531
+ }, {
532
+ key: "submitMobiusSocketMetric",
533
+ value: function submitMobiusSocketMetric(name, metricAction, type, wssUrl, trackingId, error, eventType) {
534
+ var _this$deviceInfo39, _this$deviceInfo39$de, _this$deviceInfo40, _this$deviceInfo40$de, _this$deviceInfo41, _this$deviceInfo41$de;
535
+ var data;
536
+ var commonTags = {
537
+ action: metricAction,
538
+ device_id: (_this$deviceInfo39 = this.deviceInfo) === null || _this$deviceInfo39 === void 0 ? void 0 : (_this$deviceInfo39$de = _this$deviceInfo39.device) === null || _this$deviceInfo39$de === void 0 ? void 0 : _this$deviceInfo39$de.deviceId,
539
+ service_indicator: this.serviceIndicator
540
+ };
541
+ var commonFields = {
542
+ device_url: (_this$deviceInfo40 = this.deviceInfo) === null || _this$deviceInfo40 === void 0 ? void 0 : (_this$deviceInfo40$de = _this$deviceInfo40.device) === null || _this$deviceInfo40$de === void 0 ? void 0 : _this$deviceInfo40$de.clientDeviceUri,
543
+ mobius_url: (_this$deviceInfo41 = this.deviceInfo) === null || _this$deviceInfo41 === void 0 ? void 0 : (_this$deviceInfo41$de = _this$deviceInfo41.device) === null || _this$deviceInfo41$de === void 0 ? void 0 : _this$deviceInfo41$de.uri,
544
+ calling_sdk_version: process.env.CALLING_SDK_VERSION || _constants.VERSION,
545
+ wss_url: wssUrl,
546
+ tracking_id: trackingId,
547
+ event_type: eventType
548
+ };
549
+ switch (name) {
550
+ case _types2.METRIC_EVENT.MOBIUS_SOCKET:
551
+ {
552
+ data = {
553
+ tags: commonTags,
554
+ fields: commonFields,
555
+ type: type
556
+ };
557
+ break;
558
+ }
559
+ case _types2.METRIC_EVENT.MOBIUS_SOCKET_ERROR:
560
+ {
561
+ data = {
562
+ tags: commonTags,
563
+ fields: _objectSpread(_objectSpread({}, commonFields), {}, {
564
+ error: error
565
+ }),
566
+ type: type
567
+ };
568
+ break;
569
+ }
570
+ default:
571
+ _Logger.default.warn('Invalid metric name received. Rejecting request to submit metric.', {
572
+ file: _constants.METRIC_FILE,
573
+ method: 'submitMobiusSocketMetric'
574
+ });
575
+ break;
576
+ }
577
+ if (data) {
578
+ this.webex.internal.metrics.submitClientMetrics(name, data);
579
+ }
580
+ }
521
581
  }]);
522
582
  }();
523
583
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_types","_types2","_Logger","_interopRequireDefault","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","metricManager","MetricManager","webex","indicator","_classCallCheck2","log","info","file","METRIC_FILE","serviceIndicator","_createClass2","key","value","submitConnectionMetrics","name","metricAction","type","downTimestamp","upTimestamp","_this$deviceInfo","_this$deviceInfo$devi","_this$deviceInfo2","_this$deviceInfo2$dev","_this$deviceInfo3","_this$deviceInfo3$dev","metricData","tags","device_id","deviceInfo","device","deviceId","service_indicator","fields","device_url","clientDeviceUri","mobius_url","uri","calling_sdk_version","process","env","CALLING_SDK_VERSION","VERSION","internal","metrics","submitClientMetrics","submitUploadLogsMetric","action","trackingId","feedbackId","correlationId","stack","callId","broadworksCorrelationInfo","_this$deviceInfo4","_this$deviceInfo4$dev","_this$deviceInfo5","_this$deviceInfo5$dev","_this$deviceInfo6","_this$deviceInfo6$dev","data","commonData","correlation_id","tracking_id","feedback_id","call_id","METRIC_EVENT","UPLOAD_LOGS_SUCCESS","UPLOAD_LOGS_FAILED","error","setDeviceInfo","submitRegionInfoMetric","mobiusHost","clientRegion","countryCode","_this$deviceInfo7","_this$deviceInfo7$dev","_this$deviceInfo8","_this$deviceInfo8$dev","_this$deviceInfo9","_this$deviceInfo9$dev","ServiceIndicator","CALLING","mobius_host","client_region","country_code","submitMobiusServersMetric","mobiusServers","_this$deviceInfo0","_this$deviceInfo0$dev","_this$deviceInfo1","_this$deviceInfo1$dev","_this$deviceInfo10","_this$deviceInfo10$de","primary_mobius_servers_region","primary","region","primary_mobius_servers_uris","uris","join","backup_mobius_servers_region","backup","backup_mobius_servers_uris","submitRegistrationMetric","caller","serverType","keepaliveCount","clientError","REGISTRATION","_this$deviceInfo11","_this$deviceInfo11$de","_this$deviceInfo12","_this$deviceInfo12$de","_this$deviceInfo13","_this$deviceInfo13$de","reg_source","server_type","REGISTRATION_ERROR","_this$deviceInfo14","_this$deviceInfo14$de","_this$deviceInfo15","_this$deviceInfo15$de","_this$deviceInfo16","_this$deviceInfo16$de","_errorData","_errorData2","errorData","msg","getError","message","error_type","KEEPALIVE_ERROR","_this$deviceInfo17","_this$deviceInfo17$de","_this$deviceInfo18","_this$deviceInfo18$de","_this$deviceInfo19","_this$deviceInfo19$de","_errorData4","_errorData5","keepalive_count","warn","method","submitCallMetric","callError","CALL","_this$deviceInfo20","_this$deviceInfo20$de","_this$deviceInfo21","_this$deviceInfo21$de","_this$deviceInfo22","_this$deviceInfo22$de","CALL_ERROR","_this$deviceInfo23","_this$deviceInfo23$de","_this$deviceInfo24","_this$deviceInfo24$de","_this$deviceInfo25","_this$deviceInfo25$de","getCallError","submitMediaMetric","localSdp","remoteSdp","MEDIA","_this$deviceInfo26","_this$deviceInfo26$de","_this$deviceInfo27","_this$deviceInfo27$de","_this$deviceInfo28","_this$deviceInfo28$de","local_media_details","remote_media_details","MEDIA_ERROR","_this$deviceInfo29","_this$deviceInfo29$de","_this$deviceInfo30","_this$deviceInfo30$de","_this$deviceInfo31","_this$deviceInfo31$de","submitVoicemailMetric","messageId","voicemailError","statusCode","VOICEMAIL","_this$deviceInfo32","_this$deviceInfo32$de","_this$deviceInfo33","_this$deviceInfo33$de","message_id","VOICEMAIL_ERROR","_this$deviceInfo34","_this$deviceInfo34$de","_this$deviceInfo35","_this$deviceInfo35$de","status_code","submitBNRMetric","BNR_ENABLED","BNR_DISABLED","_this$deviceInfo36","_this$deviceInfo36$de","_this$deviceInfo37","_this$deviceInfo37$de","_this$deviceInfo38","_this$deviceInfo38$de","getMetricManager","exports","_default"],"sources":["index.ts"],"sourcesContent":["import {CallError, CallingClientError} from '../Errors';\nimport {METRIC_FILE, VERSION} from '../CallingClient/constants';\nimport {CallId, CorrelationId, IDeviceInfo, MobiusServers, ServiceIndicator} from '../common/types';\nimport {WebexSDK} from '../SDKConnector/types';\nimport {\n REG_ACTION,\n IMetricManager,\n METRIC_TYPE,\n METRIC_EVENT,\n SERVER_TYPE,\n CONNECTION_ACTION,\n} from './types';\nimport {LineError} from '../Errors/catalog/LineError';\nimport log from '../Logger';\n\nlet metricManager: IMetricManager;\n\n/**\n *\n */\nclass MetricManager implements IMetricManager {\n private webex: WebexSDK;\n\n private deviceInfo?: IDeviceInfo;\n\n private serviceIndicator?: ServiceIndicator;\n\n /**\n * @param webex - Webex object used to send metrics.\n * @param indicator - Service Indicator.\n */\n public constructor(webex: WebexSDK, indicator?: ServiceIndicator) {\n log.info('Initializing metric manager...', {file: METRIC_FILE});\n this.webex = webex;\n this.serviceIndicator = indicator;\n }\n\n public submitConnectionMetrics(\n name: METRIC_EVENT,\n metricAction: CONNECTION_ACTION,\n type: METRIC_TYPE,\n downTimestamp: string,\n upTimestamp: string\n ) {\n const metricData = {\n tags: {\n metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n downTimestamp,\n upTimestamp,\n },\n type,\n };\n\n if (metricData) {\n this.webex.internal.metrics.submitClientMetrics(name, metricData);\n }\n }\n\n public submitUploadLogsMetric(\n name: METRIC_EVENT,\n action: string,\n type: METRIC_TYPE,\n trackingId?: string,\n feedbackId?: string,\n correlationId?: string,\n stack?: string,\n callId?: string,\n broadworksCorrelationInfo?: string\n ) {\n let data;\n\n const commonData = {\n tags: {\n action,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n correlation_id: correlationId,\n broadworksCorrelationInfo,\n tracking_id: trackingId,\n feedback_id: feedbackId,\n call_id: callId,\n },\n type,\n };\n\n switch (name) {\n case METRIC_EVENT.UPLOAD_LOGS_SUCCESS: {\n data = commonData;\n\n break;\n }\n\n case METRIC_EVENT.UPLOAD_LOGS_FAILED: {\n data = {\n ...commonData,\n fields: {\n ...commonData.fields,\n error: stack,\n },\n };\n\n break;\n }\n }\n\n if (data) {\n this.webex.internal.metrics.submitClientMetrics(name, data);\n }\n }\n\n /**\n * @param deviceInfo - DeviceInfo object.\n */\n public setDeviceInfo(deviceInfo: IDeviceInfo) {\n this.deviceInfo = deviceInfo;\n }\n\n /**\n * @param name - Name of the metric being submitted.\n * @param metricAction - Type of action sent in the metric.\n * @param type - Type of metric.\n * @param region - Region string.\n * @param trackingId - Tracking ID string.\n */\n public submitRegionInfoMetric(\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n mobiusHost: string,\n clientRegion: string,\n countryCode: string,\n trackingId?: string\n ) {\n const data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n mobius_host: mobiusHost,\n client_region: clientRegion,\n country_code: countryCode,\n tracking_id: trackingId,\n },\n type,\n };\n\n this.webex.internal.metrics.submitClientMetrics(name, data);\n }\n\n /**\n * @param name - Name of the metric being submitted.\n * @param metricAction - Type of action sent in the metric.\n * @param type - Type of metric.\n * @param mobiusServers - Array of Mobius server objects.\n */\n public submitMobiusServersMetric(\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n mobiusServers: MobiusServers,\n trackingId?: string\n ) {\n const data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n primary_mobius_servers_region: mobiusServers.primary.region,\n primary_mobius_servers_uris: mobiusServers.primary.uris.join(','),\n backup_mobius_servers_region: mobiusServers.backup.region,\n backup_mobius_servers_uris: mobiusServers.backup.uris.join(','),\n tracking_id: trackingId,\n },\n type,\n };\n\n this.webex.internal.metrics.submitClientMetrics(name, data);\n }\n\n /**\n * @param name - Name of the metric being submitted.\n * @param metricAction - Type of action sent in the metric.\n * @param type - Type of metric.\n * @param clientError - Error object used to populate error details in metric.\n */\n public submitRegistrationMetric(\n name: METRIC_EVENT,\n metricAction: REG_ACTION,\n type: METRIC_TYPE,\n caller: string,\n serverType: SERVER_TYPE,\n trackingId: string,\n keepaliveCount?: number,\n clientError?: LineError | CallingClientError\n ) {\n let data;\n\n switch (name) {\n case METRIC_EVENT.REGISTRATION: {\n data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n reg_source: caller,\n server_type: serverType,\n trackingId,\n },\n type,\n };\n break;\n }\n\n case METRIC_EVENT.REGISTRATION_ERROR: {\n let errorData;\n if (clientError) {\n errorData = {\n msg: clientError.getError().message,\n type: clientError.getError().type,\n };\n }\n data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n reg_source: caller,\n server_type: serverType,\n trackingId,\n error: errorData?.msg,\n error_type: errorData?.type,\n },\n type,\n };\n\n break;\n }\n\n case METRIC_EVENT.KEEPALIVE_ERROR: {\n let errorData;\n if (clientError) {\n errorData = {\n msg: clientError.getError().message,\n type: clientError.getError().type,\n };\n }\n data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n reg_source: caller,\n server_type: serverType,\n trackingId,\n keepalive_count: keepaliveCount,\n error: errorData?.msg,\n error_type: errorData?.type,\n },\n type,\n };\n break;\n }\n\n default:\n log.warn('Invalid metric name received. Rejecting request to submit metric.', {\n file: METRIC_FILE,\n method: 'submitRegistrationMetric',\n });\n break;\n }\n\n if (data) {\n this.webex.internal.metrics.submitClientMetrics(name, data);\n }\n }\n\n /**\n * @param name - Name of the metric being submitted.\n * @param metricAction - Type of action sent in the metric.\n * @param type - Type of metric.\n * @param callId - Call ID of the call sending the metric.\n * @param correlationId - Correlation ID of the call sending the metric.\n * @param callError - Error object used to populate error details in metric.\n */\n public submitCallMetric(\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n callId: CallId,\n correlationId: CorrelationId,\n callError?: CallError\n ) {\n let data;\n\n switch (name) {\n case METRIC_EVENT.CALL: {\n data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n call_id: callId,\n correlation_id: correlationId,\n },\n type,\n };\n break;\n }\n\n case METRIC_EVENT.CALL_ERROR: {\n if (callError) {\n data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n call_id: callId,\n correlation_id: correlationId,\n error: callError.getCallError().message,\n error_type: callError.getCallError().type,\n },\n type,\n };\n }\n break;\n }\n\n default:\n log.warn('Invalid metric name received. Rejecting request to submit metric.', {\n file: METRIC_FILE,\n method: 'submitCallMetric',\n });\n break;\n }\n\n if (data) {\n this.webex.internal.metrics.submitClientMetrics(name, data);\n }\n }\n\n /**\n * @param name - Name of the metric being submitted.\n * @param metricAction - Type of action sent in the metric.\n * @param type - Type of metric.\n * @param callId - Call ID of the call sending the metric.\n * @param correlationId - Correlation ID of the call sending the metric.\n * @param localSdp - Local SDP information for media metric.\n * @param remoteSdp - Remote SDP information for media metric.\n * @param callError - Error object used to populate error details in metric.\n */\n public submitMediaMetric(\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n callId: CallId,\n correlationId: CorrelationId,\n localSdp?: string,\n remoteSdp?: string,\n callError?: CallError\n ) {\n let data;\n\n switch (name) {\n case METRIC_EVENT.MEDIA: {\n data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n call_id: callId,\n correlation_id: correlationId,\n local_media_details: localSdp,\n remote_media_details: remoteSdp,\n },\n type,\n };\n break;\n }\n\n case METRIC_EVENT.MEDIA_ERROR: {\n if (callError) {\n data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n call_id: callId,\n correlation_id: correlationId,\n local_media_details: localSdp,\n remote_media_details: remoteSdp,\n error: callError.getCallError().message,\n error_type: callError.getCallError().type,\n },\n type,\n };\n }\n break;\n }\n\n default:\n log.warn('Invalid metric name received. Rejecting request to submit metric.', {\n file: METRIC_FILE,\n method: 'submitMediaMetric',\n });\n break;\n }\n\n if (data) {\n this.webex.internal.metrics.submitClientMetrics(name, data);\n }\n }\n\n /**\n * @param name - Name of the metric being submitted.\n * @param metricAction - Type of action sent in the metric.\n * @param type - Type of metric.\n * @param messageId - Message identifier of a Voicemail message.\n * @param voicemailError - Error string used to populate error details in metric.\n * @param statusCode - Status code used to populate error details in metric.\n */\n public submitVoicemailMetric(\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n messageId?: string,\n voicemailError?: string,\n statusCode?: number\n ) {\n let data;\n\n switch (name) {\n case METRIC_EVENT.VOICEMAIL: {\n data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n message_id: messageId,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n calling_sdk_version:\n typeof process !== 'undefined' && process.env.CALLING_SDK_VERSION\n ? process.env.CALLING_SDK_VERSION\n : VERSION,\n },\n type,\n };\n break;\n }\n\n case METRIC_EVENT.VOICEMAIL_ERROR: {\n data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n message_id: messageId,\n error: voicemailError,\n status_code: statusCode,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n calling_sdk_version:\n typeof process !== 'undefined' && process.env.CALLING_SDK_VERSION\n ? process.env.CALLING_SDK_VERSION\n : VERSION,\n },\n type,\n };\n break;\n }\n\n default:\n log.warn('Invalid metric name received. Rejecting request to submit metric.', {\n file: METRIC_FILE,\n method: 'submitVoicemailMetric',\n });\n break;\n }\n if (data) {\n this.webex.internal.metrics.submitClientMetrics(name, data);\n }\n }\n\n public submitBNRMetric(\n name: METRIC_EVENT,\n type: METRIC_TYPE,\n callId: CallId,\n correlationId: CorrelationId\n ) {\n let data;\n\n if (name === METRIC_EVENT.BNR_ENABLED || name === METRIC_EVENT.BNR_DISABLED) {\n data = {\n tags: {\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n call_id: callId,\n correlation_id: correlationId,\n },\n type,\n };\n } else {\n log.warn('Invalid metric name received. Rejecting request to submit metric.', {\n file: METRIC_FILE,\n method: 'submitBNRMetric',\n });\n }\n\n if (data) {\n this.webex.internal.metrics.submitClientMetrics(name, data);\n }\n }\n}\n\n/**\n * @param webex - Webex object to communicate with metrics microservice.\n * @param indicator - Service Indicator.\n */\nexport const getMetricManager = (\n webex?: WebexSDK,\n indicator?: ServiceIndicator\n): IMetricManager => {\n if (!metricManager && webex) {\n metricManager = new MetricManager(webex, indicator);\n }\n\n return metricManager;\n};\n\nexport default getMetricManager;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_constants","require","_types","_types2","_Logger","_interopRequireDefault","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","metricManager","MetricManager","webex","indicator","_classCallCheck2","log","info","file","METRIC_FILE","serviceIndicator","_createClass2","key","value","submitConnectionMetrics","name","metricAction","type","downTimestamp","upTimestamp","_this$deviceInfo","_this$deviceInfo$devi","_this$deviceInfo2","_this$deviceInfo2$dev","_this$deviceInfo3","_this$deviceInfo3$dev","metricData","tags","device_id","deviceInfo","device","deviceId","service_indicator","fields","device_url","clientDeviceUri","mobius_url","uri","calling_sdk_version","process","env","CALLING_SDK_VERSION","VERSION","internal","metrics","submitClientMetrics","submitUploadLogsMetric","action","trackingId","feedbackId","correlationId","stack","callId","broadworksCorrelationInfo","_this$deviceInfo4","_this$deviceInfo4$dev","_this$deviceInfo5","_this$deviceInfo5$dev","_this$deviceInfo6","_this$deviceInfo6$dev","data","commonData","correlation_id","tracking_id","feedback_id","call_id","METRIC_EVENT","UPLOAD_LOGS_SUCCESS","UPLOAD_LOGS_FAILED","error","setDeviceInfo","submitRegionInfoMetric","mobiusHost","clientRegion","countryCode","_this$deviceInfo7","_this$deviceInfo7$dev","_this$deviceInfo8","_this$deviceInfo8$dev","_this$deviceInfo9","_this$deviceInfo9$dev","ServiceIndicator","CALLING","mobius_host","client_region","country_code","submitMobiusServersMetric","mobiusServers","_this$deviceInfo0","_this$deviceInfo0$dev","_this$deviceInfo1","_this$deviceInfo1$dev","_this$deviceInfo10","_this$deviceInfo10$de","primary_mobius_servers_region","primary","region","primary_mobius_servers_uris","uris","join","backup_mobius_servers_region","backup","backup_mobius_servers_uris","submitRegistrationMetric","caller","serverType","keepaliveCount","clientError","REGISTRATION","_this$deviceInfo11","_this$deviceInfo11$de","_this$deviceInfo12","_this$deviceInfo12$de","_this$deviceInfo13","_this$deviceInfo13$de","reg_source","server_type","REGISTRATION_ERROR","_this$deviceInfo14","_this$deviceInfo14$de","_this$deviceInfo15","_this$deviceInfo15$de","_this$deviceInfo16","_this$deviceInfo16$de","_errorData","_errorData2","errorData","msg","getError","message","error_type","KEEPALIVE_ERROR","_this$deviceInfo17","_this$deviceInfo17$de","_this$deviceInfo18","_this$deviceInfo18$de","_this$deviceInfo19","_this$deviceInfo19$de","_errorData4","_errorData5","keepalive_count","warn","method","submitCallMetric","callError","CALL","_this$deviceInfo20","_this$deviceInfo20$de","_this$deviceInfo21","_this$deviceInfo21$de","_this$deviceInfo22","_this$deviceInfo22$de","CALL_ERROR","_this$deviceInfo23","_this$deviceInfo23$de","_this$deviceInfo24","_this$deviceInfo24$de","_this$deviceInfo25","_this$deviceInfo25$de","getCallError","submitMediaMetric","localSdp","remoteSdp","MEDIA","_this$deviceInfo26","_this$deviceInfo26$de","_this$deviceInfo27","_this$deviceInfo27$de","_this$deviceInfo28","_this$deviceInfo28$de","local_media_details","remote_media_details","MEDIA_ERROR","_this$deviceInfo29","_this$deviceInfo29$de","_this$deviceInfo30","_this$deviceInfo30$de","_this$deviceInfo31","_this$deviceInfo31$de","submitVoicemailMetric","messageId","voicemailError","statusCode","VOICEMAIL","_this$deviceInfo32","_this$deviceInfo32$de","_this$deviceInfo33","_this$deviceInfo33$de","message_id","VOICEMAIL_ERROR","_this$deviceInfo34","_this$deviceInfo34$de","_this$deviceInfo35","_this$deviceInfo35$de","status_code","submitBNRMetric","BNR_ENABLED","BNR_DISABLED","_this$deviceInfo36","_this$deviceInfo36$de","_this$deviceInfo37","_this$deviceInfo37$de","_this$deviceInfo38","_this$deviceInfo38$de","submitMobiusSocketMetric","wssUrl","eventType","_this$deviceInfo39","_this$deviceInfo39$de","_this$deviceInfo40","_this$deviceInfo40$de","_this$deviceInfo41","_this$deviceInfo41$de","commonTags","commonFields","wss_url","event_type","MOBIUS_SOCKET","MOBIUS_SOCKET_ERROR","getMetricManager","exports","_default"],"sources":["index.ts"],"sourcesContent":["import {CallError, CallingClientError} from '../Errors';\nimport {METRIC_FILE, VERSION} from '../CallingClient/constants';\nimport {CallId, CorrelationId, IDeviceInfo, MobiusServers, ServiceIndicator} from '../common/types';\nimport {WebexSDK} from '../SDKConnector/types';\nimport {\n REG_ACTION,\n IMetricManager,\n METRIC_TYPE,\n METRIC_EVENT,\n SERVER_TYPE,\n CONNECTION_ACTION,\n MOBIUS_SOCKET_ACTION,\n} from './types';\nimport {LineError} from '../Errors/catalog/LineError';\nimport log from '../Logger';\n\nlet metricManager: IMetricManager;\n\n/**\n *\n */\nclass MetricManager implements IMetricManager {\n private webex: WebexSDK;\n\n private deviceInfo?: IDeviceInfo;\n\n private serviceIndicator?: ServiceIndicator;\n\n /**\n * @param webex - Webex object used to send metrics.\n * @param indicator - Service Indicator.\n */\n public constructor(webex: WebexSDK, indicator?: ServiceIndicator) {\n log.info('Initializing metric manager...', {file: METRIC_FILE});\n this.webex = webex;\n this.serviceIndicator = indicator;\n }\n\n public submitConnectionMetrics(\n name: METRIC_EVENT,\n metricAction: CONNECTION_ACTION,\n type: METRIC_TYPE,\n downTimestamp: string,\n upTimestamp: string\n ) {\n const metricData = {\n tags: {\n metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n downTimestamp,\n upTimestamp,\n },\n type,\n };\n\n if (metricData) {\n this.webex.internal.metrics.submitClientMetrics(name, metricData);\n }\n }\n\n public submitUploadLogsMetric(\n name: METRIC_EVENT,\n action: string,\n type: METRIC_TYPE,\n trackingId?: string,\n feedbackId?: string,\n correlationId?: string,\n stack?: string,\n callId?: string,\n broadworksCorrelationInfo?: string\n ) {\n let data;\n\n const commonData = {\n tags: {\n action,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n correlation_id: correlationId,\n broadworksCorrelationInfo,\n tracking_id: trackingId,\n feedback_id: feedbackId,\n call_id: callId,\n },\n type,\n };\n\n switch (name) {\n case METRIC_EVENT.UPLOAD_LOGS_SUCCESS: {\n data = commonData;\n\n break;\n }\n\n case METRIC_EVENT.UPLOAD_LOGS_FAILED: {\n data = {\n ...commonData,\n fields: {\n ...commonData.fields,\n error: stack,\n },\n };\n\n break;\n }\n }\n\n if (data) {\n this.webex.internal.metrics.submitClientMetrics(name, data);\n }\n }\n\n /**\n * @param deviceInfo - DeviceInfo object.\n */\n public setDeviceInfo(deviceInfo: IDeviceInfo) {\n this.deviceInfo = deviceInfo;\n }\n\n /**\n * @param name - Name of the metric being submitted.\n * @param metricAction - Type of action sent in the metric.\n * @param type - Type of metric.\n * @param region - Region string.\n * @param trackingId - Tracking ID string.\n */\n public submitRegionInfoMetric(\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n mobiusHost: string,\n clientRegion: string,\n countryCode: string,\n trackingId?: string\n ) {\n const data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n mobius_host: mobiusHost,\n client_region: clientRegion,\n country_code: countryCode,\n tracking_id: trackingId,\n },\n type,\n };\n\n this.webex.internal.metrics.submitClientMetrics(name, data);\n }\n\n /**\n * @param name - Name of the metric being submitted.\n * @param metricAction - Type of action sent in the metric.\n * @param type - Type of metric.\n * @param mobiusServers - Array of Mobius server objects.\n */\n public submitMobiusServersMetric(\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n mobiusServers: MobiusServers,\n trackingId?: string\n ) {\n const data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n primary_mobius_servers_region: mobiusServers.primary.region,\n primary_mobius_servers_uris: mobiusServers.primary.uris.join(','),\n backup_mobius_servers_region: mobiusServers.backup.region,\n backup_mobius_servers_uris: mobiusServers.backup.uris.join(','),\n tracking_id: trackingId,\n },\n type,\n };\n\n this.webex.internal.metrics.submitClientMetrics(name, data);\n }\n\n /**\n * @param name - Name of the metric being submitted.\n * @param metricAction - Type of action sent in the metric.\n * @param type - Type of metric.\n * @param clientError - Error object used to populate error details in metric.\n */\n public submitRegistrationMetric(\n name: METRIC_EVENT,\n metricAction: REG_ACTION,\n type: METRIC_TYPE,\n caller: string,\n serverType: SERVER_TYPE,\n trackingId: string,\n keepaliveCount?: number,\n clientError?: LineError | CallingClientError\n ) {\n let data;\n\n switch (name) {\n case METRIC_EVENT.REGISTRATION: {\n data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n reg_source: caller,\n server_type: serverType,\n trackingId,\n },\n type,\n };\n break;\n }\n\n case METRIC_EVENT.REGISTRATION_ERROR: {\n let errorData;\n if (clientError) {\n errorData = {\n msg: clientError.getError().message,\n type: clientError.getError().type,\n };\n }\n data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n reg_source: caller,\n server_type: serverType,\n trackingId,\n error: errorData?.msg,\n error_type: errorData?.type,\n },\n type,\n };\n\n break;\n }\n\n case METRIC_EVENT.KEEPALIVE_ERROR: {\n let errorData;\n if (clientError) {\n errorData = {\n msg: clientError.getError().message,\n type: clientError.getError().type,\n };\n }\n data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n reg_source: caller,\n server_type: serverType,\n trackingId,\n keepalive_count: keepaliveCount,\n error: errorData?.msg,\n error_type: errorData?.type,\n },\n type,\n };\n break;\n }\n\n default:\n log.warn('Invalid metric name received. Rejecting request to submit metric.', {\n file: METRIC_FILE,\n method: 'submitRegistrationMetric',\n });\n break;\n }\n\n if (data) {\n this.webex.internal.metrics.submitClientMetrics(name, data);\n }\n }\n\n /**\n * @param name - Name of the metric being submitted.\n * @param metricAction - Type of action sent in the metric.\n * @param type - Type of metric.\n * @param callId - Call ID of the call sending the metric.\n * @param correlationId - Correlation ID of the call sending the metric.\n * @param callError - Error object used to populate error details in metric.\n */\n public submitCallMetric(\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n callId: CallId,\n correlationId: CorrelationId,\n callError?: CallError\n ) {\n let data;\n\n switch (name) {\n case METRIC_EVENT.CALL: {\n data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n call_id: callId,\n correlation_id: correlationId,\n },\n type,\n };\n break;\n }\n\n case METRIC_EVENT.CALL_ERROR: {\n if (callError) {\n data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n call_id: callId,\n correlation_id: correlationId,\n error: callError.getCallError().message,\n error_type: callError.getCallError().type,\n },\n type,\n };\n }\n break;\n }\n\n default:\n log.warn('Invalid metric name received. Rejecting request to submit metric.', {\n file: METRIC_FILE,\n method: 'submitCallMetric',\n });\n break;\n }\n\n if (data) {\n this.webex.internal.metrics.submitClientMetrics(name, data);\n }\n }\n\n /**\n * @param name - Name of the metric being submitted.\n * @param metricAction - Type of action sent in the metric.\n * @param type - Type of metric.\n * @param callId - Call ID of the call sending the metric.\n * @param correlationId - Correlation ID of the call sending the metric.\n * @param localSdp - Local SDP information for media metric.\n * @param remoteSdp - Remote SDP information for media metric.\n * @param callError - Error object used to populate error details in metric.\n */\n public submitMediaMetric(\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n callId: CallId,\n correlationId: CorrelationId,\n localSdp?: string,\n remoteSdp?: string,\n callError?: CallError\n ) {\n let data;\n\n switch (name) {\n case METRIC_EVENT.MEDIA: {\n data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n call_id: callId,\n correlation_id: correlationId,\n local_media_details: localSdp,\n remote_media_details: remoteSdp,\n },\n type,\n };\n break;\n }\n\n case METRIC_EVENT.MEDIA_ERROR: {\n if (callError) {\n data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n call_id: callId,\n correlation_id: correlationId,\n local_media_details: localSdp,\n remote_media_details: remoteSdp,\n error: callError.getCallError().message,\n error_type: callError.getCallError().type,\n },\n type,\n };\n }\n break;\n }\n\n default:\n log.warn('Invalid metric name received. Rejecting request to submit metric.', {\n file: METRIC_FILE,\n method: 'submitMediaMetric',\n });\n break;\n }\n\n if (data) {\n this.webex.internal.metrics.submitClientMetrics(name, data);\n }\n }\n\n /**\n * @param name - Name of the metric being submitted.\n * @param metricAction - Type of action sent in the metric.\n * @param type - Type of metric.\n * @param messageId - Message identifier of a Voicemail message.\n * @param voicemailError - Error string used to populate error details in metric.\n * @param statusCode - Status code used to populate error details in metric.\n */\n public submitVoicemailMetric(\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n messageId?: string,\n voicemailError?: string,\n statusCode?: number\n ) {\n let data;\n\n switch (name) {\n case METRIC_EVENT.VOICEMAIL: {\n data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n message_id: messageId,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n calling_sdk_version:\n typeof process !== 'undefined' && process.env.CALLING_SDK_VERSION\n ? process.env.CALLING_SDK_VERSION\n : VERSION,\n },\n type,\n };\n break;\n }\n\n case METRIC_EVENT.VOICEMAIL_ERROR: {\n data = {\n tags: {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n message_id: messageId,\n error: voicemailError,\n status_code: statusCode,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n calling_sdk_version:\n typeof process !== 'undefined' && process.env.CALLING_SDK_VERSION\n ? process.env.CALLING_SDK_VERSION\n : VERSION,\n },\n type,\n };\n break;\n }\n\n default:\n log.warn('Invalid metric name received. Rejecting request to submit metric.', {\n file: METRIC_FILE,\n method: 'submitVoicemailMetric',\n });\n break;\n }\n if (data) {\n this.webex.internal.metrics.submitClientMetrics(name, data);\n }\n }\n\n public submitBNRMetric(\n name: METRIC_EVENT,\n type: METRIC_TYPE,\n callId: CallId,\n correlationId: CorrelationId\n ) {\n let data;\n\n if (name === METRIC_EVENT.BNR_ENABLED || name === METRIC_EVENT.BNR_DISABLED) {\n data = {\n tags: {\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n },\n fields: {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n call_id: callId,\n correlation_id: correlationId,\n },\n type,\n };\n } else {\n log.warn('Invalid metric name received. Rejecting request to submit metric.', {\n file: METRIC_FILE,\n method: 'submitBNRMetric',\n });\n }\n\n if (data) {\n this.webex.internal.metrics.submitClientMetrics(name, data);\n }\n }\n\n /**\n * @param name - Name of the metric being submitted (MOBIUS_SOCKET or MOBIUS_SOCKET_ERROR).\n * @param metricAction - Type of Mobius WebSocket action.\n * @param type - Type of metric.\n * @param wssUrl - The Mobius WebSocket URL involved in the action.\n * @param trackingId - Tracking ID associated with the operation, if any.\n * @param error - Error string used to populate error details (for MOBIUS_SOCKET_ERROR).\n * @param eventType - Type of async event received over the socket, if applicable.\n */\n public submitMobiusSocketMetric(\n name: METRIC_EVENT,\n metricAction: MOBIUS_SOCKET_ACTION,\n type: METRIC_TYPE,\n wssUrl?: string,\n trackingId?: string,\n error?: string,\n eventType?: string\n ) {\n let data;\n\n const commonTags = {\n action: metricAction,\n device_id: this.deviceInfo?.device?.deviceId,\n service_indicator: this.serviceIndicator,\n };\n\n const commonFields = {\n device_url: this.deviceInfo?.device?.clientDeviceUri,\n mobius_url: this.deviceInfo?.device?.uri,\n calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,\n wss_url: wssUrl,\n tracking_id: trackingId,\n event_type: eventType,\n };\n\n switch (name) {\n case METRIC_EVENT.MOBIUS_SOCKET: {\n data = {\n tags: commonTags,\n fields: commonFields,\n type,\n };\n break;\n }\n\n case METRIC_EVENT.MOBIUS_SOCKET_ERROR: {\n data = {\n tags: commonTags,\n fields: {\n ...commonFields,\n error,\n },\n type,\n };\n break;\n }\n\n default:\n log.warn('Invalid metric name received. Rejecting request to submit metric.', {\n file: METRIC_FILE,\n method: 'submitMobiusSocketMetric',\n });\n break;\n }\n\n if (data) {\n this.webex.internal.metrics.submitClientMetrics(name, data);\n }\n }\n}\n\n/**\n * @param webex - Webex object to communicate with metrics microservice.\n * @param indicator - Service Indicator.\n */\nexport const getMetricManager = (\n webex?: WebexSDK,\n indicator?: ServiceIndicator\n): IMetricManager => {\n if (!metricManager && webex) {\n metricManager = new MetricManager(webex, indicator);\n }\n\n return metricManager;\n};\n\nexport default getMetricManager;\n"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/defi
4
4
  _Object$defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.VOICEMAIL_ACTION = exports.UPLOAD_LOGS_ACTION = exports.TRANSFER_ACTION = exports.REG_ACTION = exports.MOBIUS_SERVER_ACTION = exports.METRIC_TYPE = exports.METRIC_EVENT = exports.CONNECTION_ACTION = void 0;
7
+ exports.VOICEMAIL_ACTION = exports.UPLOAD_LOGS_ACTION = exports.TRANSFER_ACTION = exports.REG_ACTION = exports.MOBIUS_SOCKET_ACTION = exports.MOBIUS_SERVER_ACTION = exports.METRIC_TYPE = exports.METRIC_EVENT = exports.CONNECTION_ACTION = void 0;
8
8
  var METRIC_TYPE = exports.METRIC_TYPE = /*#__PURE__*/function (METRIC_TYPE) {
9
9
  METRIC_TYPE["OPERATIONAL"] = "operational";
10
10
  METRIC_TYPE["BEHAVIORAL"] = "behavioral";
@@ -26,6 +26,8 @@ var METRIC_EVENT = exports.METRIC_EVENT = /*#__PURE__*/function (METRIC_EVENT) {
26
26
  METRIC_EVENT["UPLOAD_LOGS_SUCCESS"] = "web-calling-sdk-upload-logs-success";
27
27
  METRIC_EVENT["UPLOAD_LOGS_FAILED"] = "web-calling-sdk-upload-logs-failed";
28
28
  METRIC_EVENT["MOBIUS_DISCOVERY"] = "web-calling-sdk-mobius-discovery";
29
+ METRIC_EVENT["MOBIUS_SOCKET"] = "web-calling-sdk-mobius-socket";
30
+ METRIC_EVENT["MOBIUS_SOCKET_ERROR"] = "web-calling-sdk-mobius-socket-error";
29
31
  return METRIC_EVENT;
30
32
  }({});
31
33
  var MOBIUS_SERVER_ACTION = exports.MOBIUS_SERVER_ACTION = /*#__PURE__*/function (MOBIUS_SERVER_ACTION) {
@@ -39,6 +41,14 @@ var REG_ACTION = exports.REG_ACTION = /*#__PURE__*/function (REG_ACTION) {
39
41
  REG_ACTION["KEEPALIVE_FAILURE"] = "keepaliveFailure";
40
42
  return REG_ACTION;
41
43
  }({});
44
+ var MOBIUS_SOCKET_ACTION = exports.MOBIUS_SOCKET_ACTION = /*#__PURE__*/function (MOBIUS_SOCKET_ACTION) {
45
+ MOBIUS_SOCKET_ACTION["CONNECT"] = "connect";
46
+ MOBIUS_SOCKET_ACTION["DISCONNECT"] = "disconnect";
47
+ MOBIUS_SOCKET_ACTION["LISTENER_REGISTERED"] = "listener_registered";
48
+ MOBIUS_SOCKET_ACTION["LISTENER_UNREGISTERED"] = "listener_unregistered";
49
+ MOBIUS_SOCKET_ACTION["REGISTRATION_DOWN"] = "registration_down";
50
+ return MOBIUS_SOCKET_ACTION;
51
+ }({});
42
52
  var TRANSFER_ACTION = exports.TRANSFER_ACTION = /*#__PURE__*/function (TRANSFER_ACTION) {
43
53
  TRANSFER_ACTION["BLIND"] = "TRANSFER_BLIND";
44
54
  TRANSFER_ACTION["CONSULT"] = "TRANSFER_CONSULT";
@@ -1 +1 @@
1
- {"version":3,"names":["METRIC_TYPE","exports","METRIC_EVENT","MOBIUS_SERVER_ACTION","REG_ACTION","TRANSFER_ACTION","VOICEMAIL_ACTION","UPLOAD_LOGS_ACTION","CONNECTION_ACTION"],"sources":["types.ts"],"sourcesContent":["import {LineError} from '../Errors/catalog/LineError';\nimport {CallError, CallingClientError} from '../Errors';\nimport {CallId, CorrelationId, IDeviceInfo, MobiusServers} from '../common/types';\n\nexport enum METRIC_TYPE {\n OPERATIONAL = 'operational',\n BEHAVIORAL = 'behavioral',\n}\n\nexport enum METRIC_EVENT {\n BNR_ENABLED = 'web-calling-sdk-bnr-enabled',\n BNR_DISABLED = 'web-calling-sdk-bnr-disabled',\n CALL = 'web-calling-sdk-callcontrol',\n CALL_ERROR = 'web-calling-sdk-callcontrol-error',\n CONNECTION_ERROR = 'web-calling-sdk-connection',\n MEDIA = 'web-calling-sdk-media',\n MEDIA_ERROR = 'web-calling-sdk-media-error',\n REGISTRATION = 'web-calling-sdk-registration',\n REGISTRATION_ERROR = 'web-calling-sdk-registration-error',\n KEEPALIVE_ERROR = 'web-calling-sdk-keepalive-error',\n VOICEMAIL = 'web-calling-sdk-voicemail',\n VOICEMAIL_ERROR = 'web-calling-sdk-voicemail-error',\n UPLOAD_LOGS_SUCCESS = 'web-calling-sdk-upload-logs-success',\n UPLOAD_LOGS_FAILED = 'web-calling-sdk-upload-logs-failed',\n MOBIUS_DISCOVERY = 'web-calling-sdk-mobius-discovery',\n}\n\nexport enum MOBIUS_SERVER_ACTION {\n REGION_INFO = 'region-info',\n MOBIUS_SERVERS = 'mobius-servers',\n}\n\nexport enum REG_ACTION {\n REGISTER = 'register',\n DEREGISTER = 'deregister',\n KEEPALIVE_FAILURE = 'keepaliveFailure',\n}\n\nexport enum TRANSFER_ACTION {\n BLIND = 'TRANSFER_BLIND',\n CONSULT = 'TRANSFER_CONSULT',\n}\n\nexport enum VOICEMAIL_ACTION {\n GET_VOICEMAILS = 'get_voicemails',\n GET_VOICEMAIL_CONTENT = 'get_voicemail_content',\n GET_VOICEMAIL_SUMMARY = 'get_voicemail_summary',\n MARK_READ = 'mark_read',\n MARK_UNREAD = 'mark_unread',\n DELETE = 'delete',\n TRANSCRIPT = 'transcript',\n}\n\nexport type SERVER_TYPE = 'PRIMARY' | 'BACKUP' | 'UNKNOWN';\n\nexport const UPLOAD_LOGS_ACTION = 'upload_logs';\n\nexport enum CONNECTION_ACTION {\n NETWORK_FLAP = 'network_flap',\n MERCURY_DOWN = 'mercury_down',\n MERCURY_UP = 'mercury_up',\n}\n\nexport interface IMetricManager {\n setDeviceInfo: (deviceInfo: IDeviceInfo) => void;\n\n submitRegistrationMetric: (\n name: METRIC_EVENT,\n metricAction: REG_ACTION,\n type: METRIC_TYPE,\n caller: string,\n serverType: SERVER_TYPE,\n trackingId: string,\n keepaliveCount?: number,\n error?: LineError | CallingClientError\n ) => void;\n\n submitBNRMetric: (\n name: METRIC_EVENT,\n type: METRIC_TYPE,\n callId: CallId,\n correlationId: CorrelationId\n ) => void;\n\n submitCallMetric: (\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n callId: CallId,\n correlationId: CorrelationId,\n callError?: CallError\n ) => void;\n\n submitMediaMetric: (\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n callId: CallId,\n correlationId: CorrelationId,\n localSdp?: string,\n remoteSdp?: string,\n callError?: CallError\n ) => void;\n\n submitConnectionMetrics: (\n name: METRIC_EVENT,\n metricAction: CONNECTION_ACTION,\n type: METRIC_TYPE,\n downTimestamp: string,\n upTimestamp: string\n ) => void;\n\n submitVoicemailMetric: (\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n messageId?: string,\n voicemailError?: string,\n statusCode?: number\n ) => void;\n\n submitUploadLogsMetric: (\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n trackingId?: string,\n feedbackId?: string,\n correlationId?: string,\n stack?: string,\n callId?: string,\n broadworksCorrelationInfo?: string\n ) => void;\n\n submitRegionInfoMetric: (\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n mobiusHost: string,\n clientRegion: string,\n countryCode: string,\n trackingId: string\n ) => void;\n\n submitMobiusServersMetric: (\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n mobiusServers: MobiusServers,\n trackingId: string\n ) => void;\n}\n"],"mappings":";;;;;;;IAIYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAAA,IAKXE,YAAY,GAAAD,OAAA,CAAAC,YAAA,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA;AAAA,IAkBZC,oBAAoB,GAAAF,OAAA,CAAAE,oBAAA,0BAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;AAAA,IAKpBC,UAAU,GAAAH,OAAA,CAAAG,UAAA,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAAA,IAMVC,eAAe,GAAAJ,OAAA,CAAAI,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAA,IAKfC,gBAAgB,GAAAL,OAAA,CAAAK,gBAAA,0BAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;AAYrB,IAAMC,kBAAkB,GAAAN,OAAA,CAAAM,kBAAA,GAAG,aAAa;AAAC,IAEpCC,iBAAiB,GAAAP,OAAA,CAAAO,iBAAA,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["METRIC_TYPE","exports","METRIC_EVENT","MOBIUS_SERVER_ACTION","REG_ACTION","MOBIUS_SOCKET_ACTION","TRANSFER_ACTION","VOICEMAIL_ACTION","UPLOAD_LOGS_ACTION","CONNECTION_ACTION"],"sources":["types.ts"],"sourcesContent":["import {LineError} from '../Errors/catalog/LineError';\nimport {CallError, CallingClientError} from '../Errors';\nimport {CallId, CorrelationId, IDeviceInfo, MobiusServers} from '../common/types';\n\nexport enum METRIC_TYPE {\n OPERATIONAL = 'operational',\n BEHAVIORAL = 'behavioral',\n}\n\nexport enum METRIC_EVENT {\n BNR_ENABLED = 'web-calling-sdk-bnr-enabled',\n BNR_DISABLED = 'web-calling-sdk-bnr-disabled',\n CALL = 'web-calling-sdk-callcontrol',\n CALL_ERROR = 'web-calling-sdk-callcontrol-error',\n CONNECTION_ERROR = 'web-calling-sdk-connection',\n MEDIA = 'web-calling-sdk-media',\n MEDIA_ERROR = 'web-calling-sdk-media-error',\n REGISTRATION = 'web-calling-sdk-registration',\n REGISTRATION_ERROR = 'web-calling-sdk-registration-error',\n KEEPALIVE_ERROR = 'web-calling-sdk-keepalive-error',\n VOICEMAIL = 'web-calling-sdk-voicemail',\n VOICEMAIL_ERROR = 'web-calling-sdk-voicemail-error',\n UPLOAD_LOGS_SUCCESS = 'web-calling-sdk-upload-logs-success',\n UPLOAD_LOGS_FAILED = 'web-calling-sdk-upload-logs-failed',\n MOBIUS_DISCOVERY = 'web-calling-sdk-mobius-discovery',\n MOBIUS_SOCKET = 'web-calling-sdk-mobius-socket',\n MOBIUS_SOCKET_ERROR = 'web-calling-sdk-mobius-socket-error',\n}\n\nexport enum MOBIUS_SERVER_ACTION {\n REGION_INFO = 'region-info',\n MOBIUS_SERVERS = 'mobius-servers',\n}\n\nexport enum REG_ACTION {\n REGISTER = 'register',\n DEREGISTER = 'deregister',\n KEEPALIVE_FAILURE = 'keepaliveFailure',\n}\n\nexport enum MOBIUS_SOCKET_ACTION {\n CONNECT = 'connect',\n DISCONNECT = 'disconnect',\n LISTENER_REGISTERED = 'listener_registered',\n LISTENER_UNREGISTERED = 'listener_unregistered',\n REGISTRATION_DOWN = 'registration_down',\n}\n\nexport enum TRANSFER_ACTION {\n BLIND = 'TRANSFER_BLIND',\n CONSULT = 'TRANSFER_CONSULT',\n}\n\nexport enum VOICEMAIL_ACTION {\n GET_VOICEMAILS = 'get_voicemails',\n GET_VOICEMAIL_CONTENT = 'get_voicemail_content',\n GET_VOICEMAIL_SUMMARY = 'get_voicemail_summary',\n MARK_READ = 'mark_read',\n MARK_UNREAD = 'mark_unread',\n DELETE = 'delete',\n TRANSCRIPT = 'transcript',\n}\n\nexport type SERVER_TYPE = 'PRIMARY' | 'BACKUP' | 'UNKNOWN';\n\nexport const UPLOAD_LOGS_ACTION = 'upload_logs';\n\nexport enum CONNECTION_ACTION {\n NETWORK_FLAP = 'network_flap',\n MERCURY_DOWN = 'mercury_down',\n MERCURY_UP = 'mercury_up',\n}\n\nexport interface IMetricManager {\n setDeviceInfo: (deviceInfo: IDeviceInfo) => void;\n\n submitRegistrationMetric: (\n name: METRIC_EVENT,\n metricAction: REG_ACTION,\n type: METRIC_TYPE,\n caller: string,\n serverType: SERVER_TYPE,\n trackingId: string,\n keepaliveCount?: number,\n error?: LineError | CallingClientError\n ) => void;\n\n submitBNRMetric: (\n name: METRIC_EVENT,\n type: METRIC_TYPE,\n callId: CallId,\n correlationId: CorrelationId\n ) => void;\n\n submitCallMetric: (\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n callId: CallId,\n correlationId: CorrelationId,\n callError?: CallError\n ) => void;\n\n submitMediaMetric: (\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n callId: CallId,\n correlationId: CorrelationId,\n localSdp?: string,\n remoteSdp?: string,\n callError?: CallError\n ) => void;\n\n submitConnectionMetrics: (\n name: METRIC_EVENT,\n metricAction: CONNECTION_ACTION,\n type: METRIC_TYPE,\n downTimestamp: string,\n upTimestamp: string\n ) => void;\n\n submitVoicemailMetric: (\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n messageId?: string,\n voicemailError?: string,\n statusCode?: number\n ) => void;\n\n submitUploadLogsMetric: (\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n trackingId?: string,\n feedbackId?: string,\n correlationId?: string,\n stack?: string,\n callId?: string,\n broadworksCorrelationInfo?: string\n ) => void;\n\n submitRegionInfoMetric: (\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n mobiusHost: string,\n clientRegion: string,\n countryCode: string,\n trackingId: string\n ) => void;\n\n submitMobiusServersMetric: (\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n mobiusServers: MobiusServers,\n trackingId: string\n ) => void;\n\n submitMobiusSocketMetric: (\n name: METRIC_EVENT,\n metricAction: MOBIUS_SOCKET_ACTION,\n type: METRIC_TYPE,\n wssUrl?: string,\n trackingId?: string,\n error?: string,\n eventType?: string\n ) => void;\n}\n"],"mappings":";;;;;;;IAIYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAAA,IAKXE,YAAY,GAAAD,OAAA,CAAAC,YAAA,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA;AAAA,IAoBZC,oBAAoB,GAAAF,OAAA,CAAAE,oBAAA,0BAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;AAAA,IAKpBC,UAAU,GAAAH,OAAA,CAAAG,UAAA,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAAA,IAMVC,oBAAoB,GAAAJ,OAAA,CAAAI,oBAAA,0BAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;AAAA,IAQpBC,eAAe,GAAAL,OAAA,CAAAK,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAA,IAKfC,gBAAgB,GAAAN,OAAA,CAAAM,gBAAA,0BAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;AAYrB,IAAMC,kBAAkB,GAAAP,OAAA,CAAAO,kBAAA,GAAG,aAAa;AAAC,IAEpCC,iBAAiB,GAAAR,OAAA,CAAAQ,iBAAA,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA","ignoreList":[]}
@@ -12,7 +12,7 @@ import log from '../Logger';
12
12
  import { getCallManager } from './calling/callManager';
13
13
  import { CALLING_CLIENT_FILE, CALLS_CLEARED_HANDLER_UTIL, CALLING_USER_AGENT, CISCO_DEVICE_URL, DISCOVERY_URL, GET_MOBIUS_SERVERS_UTIL, SPARK_USER_AGENT, URL_ENDPOINT, API_V1, METHODS, NETWORK_FLAP_TIMEOUT, DEVICES_ENDPOINT_RESOURCE, } from './constants';
14
14
  import Line from './line';
15
- import { METRIC_EVENT, REG_ACTION, METRIC_TYPE, CONNECTION_ACTION, MOBIUS_SERVER_ACTION, } from '../Metrics/types';
15
+ import { METRIC_EVENT, REG_ACTION, METRIC_TYPE, CONNECTION_ACTION, MOBIUS_SERVER_ACTION, MOBIUS_SOCKET_ACTION, } from '../Metrics/types';
16
16
  import { getMetricManager } from '../Metrics';
17
17
  import windowsChromiumIceWarmup from './windowsChromiumIceWarmupUtils';
18
18
  import { APIRequest } from './utils/request';
@@ -429,7 +429,14 @@ export class CallingClient extends Eventing {
429
429
  return;
430
430
  }
431
431
  if (eventType === MobiusEventType.REGISTRATION_DOWN) {
432
- log.warn('Received REGISTRATION_DOWN event from Mobius; teardown handling pending (TODO)', loggerContext);
432
+ log.warn(`Received ${eventType} event from Mobius.`, loggerContext);
433
+ const line = Object.values(this.lineDict)[0];
434
+ if (!line) {
435
+ log.warn('No line found, skipping registration down event', loggerContext);
436
+ return;
437
+ }
438
+ await line.registration.handleRegistrationDownEvent(event);
439
+ this.metricManager.submitMobiusSocketMetric(METRIC_EVENT.MOBIUS_SOCKET_ERROR, MOBIUS_SOCKET_ACTION.REGISTRATION_DOWN, METRIC_TYPE.BEHAVIORAL, undefined, event?.trackingId, undefined, eventType);
433
440
  return;
434
441
  }
435
442
  this.callManager.dequeueWsEvents(event);