@webex/calling 3.8.1 → 3.9.0-webinar5k.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/CallSettings/WxCallBackendConnector.js +2 -2
  2. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  3. package/dist/CallSettings/WxCallBackendConnector.test.js +94 -27
  4. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  5. package/dist/CallSettings/types.js.map +1 -1
  6. package/dist/CallingClient/CallingClient.js +160 -105
  7. package/dist/CallingClient/CallingClient.js.map +1 -1
  8. package/dist/CallingClient/CallingClient.test.js +168 -102
  9. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  10. package/dist/CallingClient/constants.js +3 -3
  11. package/dist/CallingClient/constants.js.map +1 -1
  12. package/dist/CallingClient/line/line.test.js +4 -10
  13. package/dist/CallingClient/line/line.test.js.map +1 -1
  14. package/dist/CallingClient/registration/register.js +486 -380
  15. package/dist/CallingClient/registration/register.js.map +1 -1
  16. package/dist/CallingClient/registration/register.test.js +441 -309
  17. package/dist/CallingClient/registration/register.test.js.map +1 -1
  18. package/dist/CallingClient/registration/types.js.map +1 -1
  19. package/dist/CallingClient/registration/webWorker.js +115 -0
  20. package/dist/CallingClient/registration/webWorker.js.map +1 -0
  21. package/dist/CallingClient/registration/webWorker.test.js +256 -0
  22. package/dist/CallingClient/registration/webWorker.test.js.map +1 -0
  23. package/dist/CallingClient/registration/webWorkerStr.js +15 -0
  24. package/dist/CallingClient/registration/webWorkerStr.js.map +1 -0
  25. package/dist/Errors/types.js +2 -0
  26. package/dist/Errors/types.js.map +1 -1
  27. package/dist/Metrics/index.js +9 -2
  28. package/dist/Metrics/index.js.map +1 -1
  29. package/dist/Metrics/index.test.js +10 -4
  30. package/dist/Metrics/index.test.js.map +1 -1
  31. package/dist/Metrics/types.js.map +1 -1
  32. package/dist/common/Utils.js +41 -34
  33. package/dist/common/Utils.js.map +1 -1
  34. package/dist/common/Utils.test.js +265 -119
  35. package/dist/common/Utils.test.js.map +1 -1
  36. package/dist/common/types.js +8 -1
  37. package/dist/common/types.js.map +1 -1
  38. package/dist/module/CallSettings/WxCallBackendConnector.js +1 -1
  39. package/dist/module/CallingClient/CallingClient.js +25 -10
  40. package/dist/module/CallingClient/constants.js +2 -2
  41. package/dist/module/CallingClient/registration/register.js +101 -65
  42. package/dist/module/CallingClient/registration/webWorker.js +59 -0
  43. package/dist/module/CallingClient/registration/webWorkerStr.js +93 -0
  44. package/dist/module/Errors/types.js +2 -0
  45. package/dist/module/Metrics/index.js +8 -1
  46. package/dist/module/common/Utils.js +10 -2
  47. package/dist/module/common/types.js +7 -0
  48. package/dist/types/CallSettings/types.d.ts +1 -1
  49. package/dist/types/CallSettings/types.d.ts.map +1 -1
  50. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  51. package/dist/types/CallingClient/constants.d.ts +2 -2
  52. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  53. package/dist/types/CallingClient/registration/register.d.ts +2 -2
  54. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  55. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  56. package/dist/types/CallingClient/registration/webWorker.d.ts +2 -0
  57. package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -0
  58. package/dist/types/CallingClient/registration/webWorkerStr.d.ts +3 -0
  59. package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -0
  60. package/dist/types/Errors/types.d.ts +2 -0
  61. package/dist/types/Errors/types.d.ts.map +1 -1
  62. package/dist/types/Metrics/index.d.ts.map +1 -1
  63. package/dist/types/Metrics/types.d.ts +2 -1
  64. package/dist/types/Metrics/types.d.ts.map +1 -1
  65. package/dist/types/common/Utils.d.ts.map +1 -1
  66. package/dist/types/common/types.d.ts +12 -0
  67. package/dist/types/common/types.d.ts.map +1 -1
  68. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_types","_Logger","_interopRequireDefault","metricManager","MetricManager","webex","indicator","_classCallCheck2","default","_defineProperty2","log","info","file","METRIC_FILE","serviceIndicator","_createClass2","key","value","submitUploadLogsMetric","name","action","type","trackingId","feedbackId","correlationId","stack","callId","data","METRIC_EVENT","UPLOAD_LOGS_SUCCESS","_this$deviceInfo","_this$deviceInfo$devi","_this$deviceInfo2","_this$deviceInfo2$dev","_this$deviceInfo3","_this$deviceInfo3$dev","tags","device_id","deviceInfo","device","deviceId","service_indicator","fields","device_url","clientDeviceUri","mobius_url","uri","calling_sdk_version","process","env","CALLING_SDK_VERSION","VERSION","correlation_id","tracking_id","feedback_id","call_id","UPLOAD_LOGS_FAILED","_this$deviceInfo4","_this$deviceInfo4$dev","_this$deviceInfo5","_this$deviceInfo5$dev","_this$deviceInfo6","_this$deviceInfo6$dev","error","internal","metrics","submitClientMetrics","setDeviceInfo","submitRegistrationMetric","metricAction","clientError","REGISTRATION","_this$deviceInfo7","_this$deviceInfo7$dev","_this$deviceInfo8","_this$deviceInfo8$dev","_this$deviceInfo9","_this$deviceInfo9$dev","REGISTRATION_ERROR","_this$deviceInfo10","_this$deviceInfo10$de","_this$deviceInfo11","_this$deviceInfo11$de","_this$deviceInfo12","_this$deviceInfo12$de","getError","message","error_type","warn","method","submitCallMetric","callError","CALL","_this$deviceInfo13","_this$deviceInfo13$de","_this$deviceInfo14","_this$deviceInfo14$de","_this$deviceInfo15","_this$deviceInfo15$de","CALL_ERROR","_this$deviceInfo16","_this$deviceInfo16$de","_this$deviceInfo17","_this$deviceInfo17$de","_this$deviceInfo18","_this$deviceInfo18$de","getCallError","submitMediaMetric","localSdp","remoteSdp","MEDIA","_this$deviceInfo19","_this$deviceInfo19$de","_this$deviceInfo20","_this$deviceInfo20$de","_this$deviceInfo21","_this$deviceInfo21$de","local_media_details","remote_media_details","MEDIA_ERROR","_this$deviceInfo22","_this$deviceInfo22$de","_this$deviceInfo23","_this$deviceInfo23$de","_this$deviceInfo24","_this$deviceInfo24$de","submitVoicemailMetric","messageId","voicemailError","statusCode","VOICEMAIL","_this$deviceInfo25","_this$deviceInfo25$de","_this$deviceInfo26","_this$deviceInfo26$de","message_id","VOICEMAIL_ERROR","_this$deviceInfo27","_this$deviceInfo27$de","_this$deviceInfo28","_this$deviceInfo28$de","status_code","submitBNRMetric","BNR_ENABLED","BNR_DISABLED","_this$deviceInfo29","_this$deviceInfo29$de","_this$deviceInfo30","_this$deviceInfo30$de","_this$deviceInfo31","_this$deviceInfo31$de","getMetricManager","exports","_default"],"sources":["index.ts"],"sourcesContent":["import {CallError, CallingClientError} from '../Errors';\nimport {METRIC_FILE, VERSION} from '../CallingClient/constants';\nimport {CallId, CorrelationId, IDeviceInfo, ServiceIndicator} from '../common/types';\nimport {WebexSDK} from '../SDKConnector/types';\nimport {REG_ACTION, IMetricManager, METRIC_TYPE, METRIC_EVENT} 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 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 ) {\n let data;\n\n switch (name) {\n case METRIC_EVENT.UPLOAD_LOGS_SUCCESS: {\n data = {\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 tracking_id: trackingId,\n feedback_id: feedbackId,\n call_id: callId,\n },\n type,\n };\n break;\n }\n case METRIC_EVENT.UPLOAD_LOGS_FAILED: {\n data = {\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 tracking_id: trackingId,\n feedback_id: feedbackId,\n error: stack,\n call_id: callId,\n },\n type,\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 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 clientError: LineError | CallingClientError | undefined\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 },\n type,\n };\n break;\n }\n\n case METRIC_EVENT.REGISTRATION_ERROR: {\n if (clientError) {\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 error: clientError.getError().message,\n error_type: clientError.getError().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: this.submitRegistrationMetric.name,\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: this.submitCallMetric.name,\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: this.submitMediaMetric.name,\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: this.submitVoicemailMetric.name,\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: this.submitBNRMetric.name,\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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"}
1
+ {"version":3,"names":["_constants","require","_types","_Logger","_interopRequireDefault","metricManager","MetricManager","webex","indicator","_classCallCheck2","default","_defineProperty2","log","info","file","METRIC_FILE","serviceIndicator","_createClass2","key","value","submitUploadLogsMetric","name","action","type","trackingId","feedbackId","correlationId","stack","callId","data","METRIC_EVENT","UPLOAD_LOGS_SUCCESS","_this$deviceInfo","_this$deviceInfo$devi","_this$deviceInfo2","_this$deviceInfo2$dev","_this$deviceInfo3","_this$deviceInfo3$dev","tags","device_id","deviceInfo","device","deviceId","service_indicator","fields","device_url","clientDeviceUri","mobius_url","uri","calling_sdk_version","process","env","CALLING_SDK_VERSION","VERSION","correlation_id","tracking_id","feedback_id","call_id","UPLOAD_LOGS_FAILED","_this$deviceInfo4","_this$deviceInfo4$dev","_this$deviceInfo5","_this$deviceInfo5$dev","_this$deviceInfo6","_this$deviceInfo6$dev","error","internal","metrics","submitClientMetrics","setDeviceInfo","submitRegistrationMetric","metricAction","caller","serverType","keepaliveCount","clientError","REGISTRATION","_this$deviceInfo7","_this$deviceInfo7$dev","_this$deviceInfo8","_this$deviceInfo8$dev","_this$deviceInfo9","_this$deviceInfo9$dev","reg_source","server_type","REGISTRATION_ERROR","_this$deviceInfo10","_this$deviceInfo10$de","_this$deviceInfo11","_this$deviceInfo11$de","_this$deviceInfo12","_this$deviceInfo12$de","keepalive_count","getError","message","error_type","warn","method","submitCallMetric","callError","CALL","_this$deviceInfo13","_this$deviceInfo13$de","_this$deviceInfo14","_this$deviceInfo14$de","_this$deviceInfo15","_this$deviceInfo15$de","CALL_ERROR","_this$deviceInfo16","_this$deviceInfo16$de","_this$deviceInfo17","_this$deviceInfo17$de","_this$deviceInfo18","_this$deviceInfo18$de","getCallError","submitMediaMetric","localSdp","remoteSdp","MEDIA","_this$deviceInfo19","_this$deviceInfo19$de","_this$deviceInfo20","_this$deviceInfo20$de","_this$deviceInfo21","_this$deviceInfo21$de","local_media_details","remote_media_details","MEDIA_ERROR","_this$deviceInfo22","_this$deviceInfo22$de","_this$deviceInfo23","_this$deviceInfo23$de","_this$deviceInfo24","_this$deviceInfo24$de","submitVoicemailMetric","messageId","voicemailError","statusCode","VOICEMAIL","_this$deviceInfo25","_this$deviceInfo25$de","_this$deviceInfo26","_this$deviceInfo26$de","message_id","VOICEMAIL_ERROR","_this$deviceInfo27","_this$deviceInfo27$de","_this$deviceInfo28","_this$deviceInfo28$de","status_code","submitBNRMetric","BNR_ENABLED","BNR_DISABLED","_this$deviceInfo29","_this$deviceInfo29$de","_this$deviceInfo30","_this$deviceInfo30$de","_this$deviceInfo31","_this$deviceInfo31$de","getMetricManager","exports","_default"],"sources":["index.ts"],"sourcesContent":["import {CallError, CallingClientError} from '../Errors';\nimport {METRIC_FILE, VERSION} from '../CallingClient/constants';\nimport {CallId, CorrelationId, IDeviceInfo, ServiceIndicator} from '../common/types';\nimport {WebexSDK} from '../SDKConnector/types';\nimport {REG_ACTION, IMetricManager, METRIC_TYPE, METRIC_EVENT, SERVER_TYPE} 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 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 ) {\n let data;\n\n switch (name) {\n case METRIC_EVENT.UPLOAD_LOGS_SUCCESS: {\n data = {\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 tracking_id: trackingId,\n feedback_id: feedbackId,\n call_id: callId,\n },\n type,\n };\n break;\n }\n case METRIC_EVENT.UPLOAD_LOGS_FAILED: {\n data = {\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 tracking_id: trackingId,\n feedback_id: feedbackId,\n error: stack,\n call_id: callId,\n },\n type,\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 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 if (clientError) {\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: clientError.getError().message,\n error_type: clientError.getError().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: this.submitRegistrationMetric.name,\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: this.submitCallMetric.name,\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: this.submitMediaMetric.name,\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: this.submitVoicemailMetric.name,\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: this.submitBNRMetric.name,\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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"}
@@ -58,11 +58,14 @@ describe('CALLING: Metric tests', function () {
58
58
  fields: {
59
59
  device_url: mockDeviceInfo.device.clientDeviceUri,
60
60
  mobius_url: mockDeviceInfo.device.uri,
61
- calling_sdk_version: MOCK_VERSION_NUMBER
61
+ calling_sdk_version: MOCK_VERSION_NUMBER,
62
+ reg_source: _constants.REGISTRATION_UTIL,
63
+ server_type: 'PRIMARY',
64
+ trackingId: 'webex-js-sdk_06bafdd0-2f9b-4cd7-b438-9c0d95ecec9b_15'
62
65
  },
63
66
  type: _types.METRIC_TYPE.BEHAVIORAL
64
67
  };
65
- metricManager.submitRegistrationMetric(_types.METRIC_EVENT.REGISTRATION, _types.REG_ACTION.REGISTER, _types.METRIC_TYPE.BEHAVIORAL, undefined);
68
+ metricManager.submitRegistrationMetric(_types.METRIC_EVENT.REGISTRATION, _types.REG_ACTION.REGISTER, _types.METRIC_TYPE.BEHAVIORAL, _constants.REGISTRATION_UTIL, 'PRIMARY', 'webex-js-sdk_06bafdd0-2f9b-4cd7-b438-9c0d95ecec9b_15', undefined, undefined);
66
69
  expect(mockSubmitClientMetric).toBeCalledOnceWith(_types.METRIC_EVENT.REGISTRATION, expectedData);
67
70
  });
68
71
  it('submit registration failure metric', function () {
@@ -83,17 +86,20 @@ describe('CALLING: Metric tests', function () {
83
86
  device_url: mockDeviceInfo.device.clientDeviceUri,
84
87
  mobius_url: mockDeviceInfo.device.uri,
85
88
  calling_sdk_version: MOCK_VERSION_NUMBER,
89
+ reg_source: _constants.REGISTRATION_UTIL,
90
+ server_type: 'BACKUP',
91
+ trackingId: 'webex-js-sdk_06bafdd0-2f9b-4cd7-b438-9c0d95ecec9b_15',
86
92
  error: clientError.getError().message,
87
93
  error_type: clientError.getError().type
88
94
  },
89
95
  type: _types.METRIC_TYPE.BEHAVIORAL
90
96
  };
91
- metricManager.submitRegistrationMetric(_types.METRIC_EVENT.REGISTRATION_ERROR, _types.REG_ACTION.REGISTER, _types.METRIC_TYPE.BEHAVIORAL, clientError);
97
+ metricManager.submitRegistrationMetric(_types.METRIC_EVENT.REGISTRATION_ERROR, _types.REG_ACTION.REGISTER, _types.METRIC_TYPE.BEHAVIORAL, _constants.REGISTRATION_UTIL, 'BACKUP', 'webex-js-sdk_06bafdd0-2f9b-4cd7-b438-9c0d95ecec9b_15', undefined, clientError);
92
98
  expect(mockSubmitClientMetric).toBeCalledOnceWith(_types.METRIC_EVENT.REGISTRATION_ERROR, expectedData);
93
99
  });
94
100
  it('submit unknown registration metric', function () {
95
101
  var logSpy = jest.spyOn(_Logger.default, 'warn');
96
- metricManager.submitRegistrationMetric('invalidMetricName', _types.REG_ACTION.REGISTER, _types.METRIC_TYPE.OPERATIONAL, undefined);
102
+ metricManager.submitRegistrationMetric('invalidMetricName', _types.REG_ACTION.REGISTER, _types.METRIC_TYPE.OPERATIONAL, _constants.REGISTRATION_UTIL, 'PRIMARY', undefined, undefined, undefined);
97
103
  expect(mockSubmitClientMetric).not.toBeCalled();
98
104
  expect(logSpy).toBeCalledOnceWith('Invalid metric name received. Rejecting request to submit metric.', {
99
105
  file: 'metric',
@@ -1 +1 @@
1
- {"version":3,"names":["_testUtil","require","_index","_types","_constants","_CallingDeviceError","_types2","_types3","_Logger","_interopRequireDefault","_CallError","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","webex","getTestUtilsWebex","describe","metricManager","getMetricManager","ServiceIndicator","CALLING","mockDeviceInfo","getMockDeviceInfo","mockSubmitClientMetric","jest","fn","MOCK_VERSION_NUMBER","originalEnv","process","env","internal","metrics","submitClientMetrics","mockCallId","mockCorrelationId","mockCallAction","mockMediaAction","beforeEach","mockClear","CALLING_SDK_VERSION","it","expect","not","toBeNull","toBeUndefined","setDeviceInfo","toEqual","expectedData","tags","action","REG_ACTION","REGISTER","device_id","device","deviceId","service_indicator","fields","device_url","clientDeviceUri","mobius_url","uri","calling_sdk_version","type","METRIC_TYPE","BEHAVIORAL","submitRegistrationMetric","METRIC_EVENT","REGISTRATION","undefined","toBeCalledOnceWith","clientError","createClientError","ERROR_TYPE","DEFAULT","RegistrationStatus","INACTIVE","err","context","message","SERVICE_UNAVAILABLE","setError","error","getError","error_type","REGISTRATION_ERROR","logSpy","spyOn","log","OPERATIONAL","toBeCalled","file","method","beforeAll","call_id","correlation_id","submitCallMetric","CALL","callError","createCallError","ERROR_LAYER","CALL_CONTROL","FORBIDDEN_ERROR","setCallError","getCallError","CALL_ERROR","mockSdp","local_media_details","remote_media_details","submitMediaMetric","MEDIA","MEDIA_ERROR","submitBNRMetric","BNR_ENABLED","BNR_DISABLED","expectedData1","VOICEMAIL_ACTION","GET_VOICEMAILS","submitVoicemailMetric","VOICEMAIL","expectedData2","message_id","DELETE","errorMessage","status_code","VOICEMAIL_ERROR","VERSION"],"sources":["index.test.ts"],"sourcesContent":["/* eslint-disable dot-notation */\nimport {getMockDeviceInfo, getTestUtilsWebex} from '../common/testUtil';\nimport {getMetricManager} from './index';\nimport {METRIC_TYPE, METRIC_EVENT, REG_ACTION, VOICEMAIL_ACTION} from './types';\nimport {VERSION} from '../CallingClient/constants';\nimport {createClientError} from '../Errors/catalog/CallingDeviceError';\nimport {CallErrorObject, ErrorObject, ERROR_LAYER, ERROR_TYPE} from '../Errors/types';\nimport {RegistrationStatus, ServiceIndicator} from '../common/types';\nimport log from '../Logger';\nimport {createCallError} from '../Errors/catalog/CallError';\n\nconst webex = getTestUtilsWebex();\n\ndescribe('CALLING: Metric tests', () => {\n const metricManager = getMetricManager(webex, ServiceIndicator.CALLING);\n const mockDeviceInfo = getMockDeviceInfo();\n const mockSubmitClientMetric = jest.fn();\n const MOCK_VERSION_NUMBER = '1.0.0';\n const originalEnv = process.env;\n\n webex.internal.metrics.submitClientMetrics = mockSubmitClientMetric;\n\n const mockCallId = '123456';\n const mockCorrelationId = '0931237';\n const mockCallAction = 'S_SEND_CALL_SETUP';\n const mockMediaAction = 'S_SEND_ROAP_OFFER';\n\n beforeEach(() => {\n mockSubmitClientMetric.mockClear();\n process.env = {\n ...originalEnv,\n CALLING_SDK_VERSION: MOCK_VERSION_NUMBER,\n };\n });\n\n it('initialize metric manager', () => {\n expect(metricManager).not.toBeNull();\n expect(metricManager['deviceInfo']).toBeUndefined();\n });\n\n it('update deviceInfo in metric manager', () => {\n expect(metricManager['deviceInfo']).toBeUndefined();\n metricManager.setDeviceInfo(mockDeviceInfo);\n expect(metricManager['deviceInfo']).toEqual(mockDeviceInfo);\n });\n\n describe('CallingClient metric tests', () => {\n it('submit registration success metric', () => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n\n const expectedData = {\n tags: {\n action: REG_ACTION.REGISTER,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n undefined\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.REGISTRATION, expectedData);\n });\n\n it('submit registration failure metric', () => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n\n const clientError = createClientError(\n '',\n {},\n ERROR_TYPE.DEFAULT,\n RegistrationStatus.INACTIVE\n );\n const err = <ErrorObject>{};\n\n err.context = {};\n err.message = 'Unknown Error';\n err.type = ERROR_TYPE.SERVICE_UNAVAILABLE;\n\n clientError.setError(err);\n\n const expectedData = {\n tags: {\n action: REG_ACTION.REGISTER,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n error: clientError.getError().message,\n error_type: clientError.getError().type,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(\n METRIC_EVENT.REGISTRATION_ERROR,\n expectedData\n );\n });\n\n it('submit unknown registration metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitRegistrationMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n REG_ACTION.REGISTER,\n METRIC_TYPE.OPERATIONAL,\n undefined\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitRegistrationMetric',\n }\n );\n });\n });\n\n describe('Call Metric tests', () => {\n beforeAll(() => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n });\n\n it('submit call success metric', () => {\n const expectedData = {\n tags: {\n action: mockCallAction,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitCallMetric(\n METRIC_EVENT.CALL,\n mockCallAction,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.CALL, expectedData);\n });\n\n it('submit call failure metric', () => {\n const callError = createCallError(\n '',\n {},\n ERROR_TYPE.DEFAULT,\n mockCorrelationId,\n ERROR_LAYER.CALL_CONTROL\n );\n\n const err = <CallErrorObject>{};\n\n err.context = {};\n err.message =\n 'An invalid status update has been received for the call. Wait a moment and try again.';\n err.type = ERROR_TYPE.FORBIDDEN_ERROR;\n\n callError.setCallError(err);\n\n const expectedData = {\n tags: {\n action: mockCallAction,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n error: callError.getCallError().message,\n error_type: callError.getCallError().type,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitCallMetric(\n METRIC_EVENT.CALL_ERROR,\n mockCallAction,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId,\n callError\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.CALL_ERROR, expectedData);\n });\n\n it('submit unknown call metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitCallMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n mockCallAction,\n METRIC_TYPE.OPERATIONAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitCallMetric',\n }\n );\n });\n });\n\n describe('Media Metric tests', () => {\n const mockSdp = 'sdpInformation';\n\n beforeAll(() => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n });\n\n it('submit media success metric', () => {\n const expectedData = {\n tags: {\n action: mockMediaAction,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n local_media_details: mockSdp,\n remote_media_details: mockSdp,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA,\n mockMediaAction,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId,\n mockSdp,\n mockSdp\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.MEDIA, expectedData);\n });\n\n it('submit media failure metric', () => {\n const callError = createCallError(\n '',\n {},\n ERROR_TYPE.DEFAULT,\n mockCorrelationId,\n ERROR_LAYER.MEDIA\n );\n\n const err = <CallErrorObject>{};\n\n err.context = {};\n err.message =\n 'An error occurred while parsing the provided information. Wait a moment and try again.';\n err.type = ERROR_TYPE.SERVICE_UNAVAILABLE;\n\n callError.setCallError(err);\n\n const expectedData = {\n tags: {\n action: mockMediaAction,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n local_media_details: mockSdp,\n remote_media_details: mockSdp,\n error: callError.getCallError().message,\n error_type: callError.getCallError().type,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA_ERROR,\n mockMediaAction,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId,\n mockSdp,\n mockSdp,\n callError\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.MEDIA_ERROR, expectedData);\n });\n\n it('submit unknown media metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitMediaMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n mockMediaAction,\n METRIC_TYPE.OPERATIONAL,\n mockCallId,\n mockCorrelationId,\n mockSdp,\n mockSdp\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitMediaMetric',\n }\n );\n });\n });\n\n describe('BNR metric tests', () => {\n beforeAll(() => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n });\n\n it('submit bnr enabled metric', () => {\n const expectedData = {\n tags: {\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_ENABLED,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.BNR_ENABLED, expectedData);\n });\n\n it('submit bnr disabled metric', () => {\n const expectedData = {\n tags: {\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_DISABLED,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.BNR_DISABLED, expectedData);\n });\n\n it('submit unknown bnr metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitBNRMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitBNRMetric',\n }\n );\n });\n });\n\n describe('Voicemail metric tests', () => {\n beforeAll(() => metricManager.setDeviceInfo(mockDeviceInfo));\n\n it('submit voicemail success metric', () => {\n const expectedData1 = {\n tags: {\n action: VOICEMAIL_ACTION.GET_VOICEMAILS,\n device_id: mockDeviceInfo.device.deviceId,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL,\n VOICEMAIL_ACTION.GET_VOICEMAILS,\n METRIC_TYPE.BEHAVIORAL\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.VOICEMAIL, expectedData1);\n\n mockSubmitClientMetric.mockClear();\n\n const expectedData2 = {\n ...expectedData1,\n tags: {...expectedData1.tags, message_id: 'messageId', action: VOICEMAIL_ACTION.DELETE},\n };\n\n metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL,\n VOICEMAIL_ACTION.DELETE,\n METRIC_TYPE.BEHAVIORAL,\n 'messageId'\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.VOICEMAIL, expectedData2);\n });\n\n it('submit voicemail failure metric', () => {\n const errorMessage = 'User is not authenticated';\n const expectedData1 = {\n tags: {\n action: VOICEMAIL_ACTION.GET_VOICEMAILS,\n device_id: mockDeviceInfo.device.deviceId,\n message_id: undefined,\n error: errorMessage,\n status_code: 401,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL_ERROR,\n VOICEMAIL_ACTION.GET_VOICEMAILS,\n METRIC_TYPE.BEHAVIORAL,\n undefined,\n errorMessage,\n 401\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(\n METRIC_EVENT.VOICEMAIL_ERROR,\n expectedData1\n );\n\n mockSubmitClientMetric.mockClear();\n\n const expectedData2 = {\n ...expectedData1,\n tags: {...expectedData1.tags, message_id: 'messageId', action: VOICEMAIL_ACTION.DELETE},\n };\n\n metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL_ERROR,\n VOICEMAIL_ACTION.DELETE,\n METRIC_TYPE.BEHAVIORAL,\n 'messageId',\n errorMessage,\n 401\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(\n METRIC_EVENT.VOICEMAIL_ERROR,\n expectedData2\n );\n });\n\n it('submit unknown voicemail metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitVoicemailMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n VOICEMAIL_ACTION.GET_VOICEMAILS,\n METRIC_TYPE.BEHAVIORAL\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitVoicemailMetric',\n }\n );\n });\n });\n\n describe('Calling_Sdk_Version fallback test', () => {\n it('submit metric with fallback version', () => {\n process.env = {};\n metricManager.setDeviceInfo(mockDeviceInfo);\n const expectedData = {\n tags: {\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: VERSION,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_ENABLED,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.BNR_ENABLED, expectedData);\n });\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_testUtil","require","_index","_types","_constants","_CallingDeviceError","_types2","_types3","_Logger","_interopRequireDefault","_CallError","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","webex","getTestUtilsWebex","describe","metricManager","getMetricManager","ServiceIndicator","CALLING","mockDeviceInfo","getMockDeviceInfo","mockSubmitClientMetric","jest","fn","MOCK_VERSION_NUMBER","originalEnv","process","env","internal","metrics","submitClientMetrics","mockCallId","mockCorrelationId","mockCallAction","mockMediaAction","beforeEach","mockClear","CALLING_SDK_VERSION","it","expect","not","toBeNull","toBeUndefined","setDeviceInfo","toEqual","expectedData","tags","action","REG_ACTION","REGISTER","device_id","device","deviceId","service_indicator","fields","device_url","clientDeviceUri","mobius_url","uri","calling_sdk_version","reg_source","REGISTRATION_UTIL","server_type","trackingId","type","METRIC_TYPE","BEHAVIORAL","submitRegistrationMetric","METRIC_EVENT","REGISTRATION","undefined","toBeCalledOnceWith","clientError","createClientError","ERROR_TYPE","DEFAULT","RegistrationStatus","INACTIVE","err","context","message","SERVICE_UNAVAILABLE","setError","error","getError","error_type","REGISTRATION_ERROR","logSpy","spyOn","log","OPERATIONAL","toBeCalled","file","method","beforeAll","call_id","correlation_id","submitCallMetric","CALL","callError","createCallError","ERROR_LAYER","CALL_CONTROL","FORBIDDEN_ERROR","setCallError","getCallError","CALL_ERROR","mockSdp","local_media_details","remote_media_details","submitMediaMetric","MEDIA","MEDIA_ERROR","submitBNRMetric","BNR_ENABLED","BNR_DISABLED","expectedData1","VOICEMAIL_ACTION","GET_VOICEMAILS","submitVoicemailMetric","VOICEMAIL","expectedData2","message_id","DELETE","errorMessage","status_code","VOICEMAIL_ERROR","VERSION"],"sources":["index.test.ts"],"sourcesContent":["/* eslint-disable dot-notation */\nimport {getMockDeviceInfo, getTestUtilsWebex} from '../common/testUtil';\nimport {getMetricManager} from './index';\nimport {METRIC_TYPE, METRIC_EVENT, REG_ACTION, VOICEMAIL_ACTION} from './types';\nimport {REGISTRATION_UTIL, VERSION} from '../CallingClient/constants';\nimport {createClientError} from '../Errors/catalog/CallingDeviceError';\nimport {CallErrorObject, ErrorObject, ERROR_LAYER, ERROR_TYPE} from '../Errors/types';\nimport {RegistrationStatus, ServiceIndicator} from '../common/types';\nimport log from '../Logger';\nimport {createCallError} from '../Errors/catalog/CallError';\n\nconst webex = getTestUtilsWebex();\n\ndescribe('CALLING: Metric tests', () => {\n const metricManager = getMetricManager(webex, ServiceIndicator.CALLING);\n const mockDeviceInfo = getMockDeviceInfo();\n const mockSubmitClientMetric = jest.fn();\n const MOCK_VERSION_NUMBER = '1.0.0';\n const originalEnv = process.env;\n\n webex.internal.metrics.submitClientMetrics = mockSubmitClientMetric;\n\n const mockCallId = '123456';\n const mockCorrelationId = '0931237';\n const mockCallAction = 'S_SEND_CALL_SETUP';\n const mockMediaAction = 'S_SEND_ROAP_OFFER';\n\n beforeEach(() => {\n mockSubmitClientMetric.mockClear();\n process.env = {\n ...originalEnv,\n CALLING_SDK_VERSION: MOCK_VERSION_NUMBER,\n };\n });\n\n it('initialize metric manager', () => {\n expect(metricManager).not.toBeNull();\n expect(metricManager['deviceInfo']).toBeUndefined();\n });\n\n it('update deviceInfo in metric manager', () => {\n expect(metricManager['deviceInfo']).toBeUndefined();\n metricManager.setDeviceInfo(mockDeviceInfo);\n expect(metricManager['deviceInfo']).toEqual(mockDeviceInfo);\n });\n\n describe('CallingClient metric tests', () => {\n it('submit registration success metric', () => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n\n const expectedData = {\n tags: {\n action: REG_ACTION.REGISTER,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n reg_source: REGISTRATION_UTIL,\n server_type: 'PRIMARY',\n trackingId: 'webex-js-sdk_06bafdd0-2f9b-4cd7-b438-9c0d95ecec9b_15',\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n REGISTRATION_UTIL,\n 'PRIMARY',\n 'webex-js-sdk_06bafdd0-2f9b-4cd7-b438-9c0d95ecec9b_15',\n undefined,\n undefined\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.REGISTRATION, expectedData);\n });\n\n it('submit registration failure metric', () => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n\n const clientError = createClientError(\n '',\n {},\n ERROR_TYPE.DEFAULT,\n RegistrationStatus.INACTIVE\n );\n const err = <ErrorObject>{};\n\n err.context = {};\n err.message = 'Unknown Error';\n err.type = ERROR_TYPE.SERVICE_UNAVAILABLE;\n\n clientError.setError(err);\n\n const expectedData = {\n tags: {\n action: REG_ACTION.REGISTER,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n reg_source: REGISTRATION_UTIL,\n server_type: 'BACKUP',\n trackingId: 'webex-js-sdk_06bafdd0-2f9b-4cd7-b438-9c0d95ecec9b_15',\n error: clientError.getError().message,\n error_type: clientError.getError().type,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n REGISTRATION_UTIL,\n 'BACKUP',\n 'webex-js-sdk_06bafdd0-2f9b-4cd7-b438-9c0d95ecec9b_15',\n undefined,\n clientError\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(\n METRIC_EVENT.REGISTRATION_ERROR,\n expectedData\n );\n });\n\n it('submit unknown registration metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitRegistrationMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n REG_ACTION.REGISTER,\n METRIC_TYPE.OPERATIONAL,\n REGISTRATION_UTIL,\n 'PRIMARY',\n undefined,\n undefined,\n undefined\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitRegistrationMetric',\n }\n );\n });\n });\n\n describe('Call Metric tests', () => {\n beforeAll(() => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n });\n\n it('submit call success metric', () => {\n const expectedData = {\n tags: {\n action: mockCallAction,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitCallMetric(\n METRIC_EVENT.CALL,\n mockCallAction,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.CALL, expectedData);\n });\n\n it('submit call failure metric', () => {\n const callError = createCallError(\n '',\n {},\n ERROR_TYPE.DEFAULT,\n mockCorrelationId,\n ERROR_LAYER.CALL_CONTROL\n );\n\n const err = <CallErrorObject>{};\n\n err.context = {};\n err.message =\n 'An invalid status update has been received for the call. Wait a moment and try again.';\n err.type = ERROR_TYPE.FORBIDDEN_ERROR;\n\n callError.setCallError(err);\n\n const expectedData = {\n tags: {\n action: mockCallAction,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n error: callError.getCallError().message,\n error_type: callError.getCallError().type,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitCallMetric(\n METRIC_EVENT.CALL_ERROR,\n mockCallAction,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId,\n callError\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.CALL_ERROR, expectedData);\n });\n\n it('submit unknown call metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitCallMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n mockCallAction,\n METRIC_TYPE.OPERATIONAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitCallMetric',\n }\n );\n });\n });\n\n describe('Media Metric tests', () => {\n const mockSdp = 'sdpInformation';\n\n beforeAll(() => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n });\n\n it('submit media success metric', () => {\n const expectedData = {\n tags: {\n action: mockMediaAction,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n local_media_details: mockSdp,\n remote_media_details: mockSdp,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA,\n mockMediaAction,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId,\n mockSdp,\n mockSdp\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.MEDIA, expectedData);\n });\n\n it('submit media failure metric', () => {\n const callError = createCallError(\n '',\n {},\n ERROR_TYPE.DEFAULT,\n mockCorrelationId,\n ERROR_LAYER.MEDIA\n );\n\n const err = <CallErrorObject>{};\n\n err.context = {};\n err.message =\n 'An error occurred while parsing the provided information. Wait a moment and try again.';\n err.type = ERROR_TYPE.SERVICE_UNAVAILABLE;\n\n callError.setCallError(err);\n\n const expectedData = {\n tags: {\n action: mockMediaAction,\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n local_media_details: mockSdp,\n remote_media_details: mockSdp,\n error: callError.getCallError().message,\n error_type: callError.getCallError().type,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitMediaMetric(\n METRIC_EVENT.MEDIA_ERROR,\n mockMediaAction,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId,\n mockSdp,\n mockSdp,\n callError\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.MEDIA_ERROR, expectedData);\n });\n\n it('submit unknown media metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitMediaMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n mockMediaAction,\n METRIC_TYPE.OPERATIONAL,\n mockCallId,\n mockCorrelationId,\n mockSdp,\n mockSdp\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitMediaMetric',\n }\n );\n });\n });\n\n describe('BNR metric tests', () => {\n beforeAll(() => {\n metricManager.setDeviceInfo(mockDeviceInfo);\n });\n\n it('submit bnr enabled metric', () => {\n const expectedData = {\n tags: {\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_ENABLED,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.BNR_ENABLED, expectedData);\n });\n\n it('submit bnr disabled metric', () => {\n const expectedData = {\n tags: {\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_DISABLED,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.BNR_DISABLED, expectedData);\n });\n\n it('submit unknown bnr metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitBNRMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitBNRMetric',\n }\n );\n });\n });\n\n describe('Voicemail metric tests', () => {\n beforeAll(() => metricManager.setDeviceInfo(mockDeviceInfo));\n\n it('submit voicemail success metric', () => {\n const expectedData1 = {\n tags: {\n action: VOICEMAIL_ACTION.GET_VOICEMAILS,\n device_id: mockDeviceInfo.device.deviceId,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL,\n VOICEMAIL_ACTION.GET_VOICEMAILS,\n METRIC_TYPE.BEHAVIORAL\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.VOICEMAIL, expectedData1);\n\n mockSubmitClientMetric.mockClear();\n\n const expectedData2 = {\n ...expectedData1,\n tags: {...expectedData1.tags, message_id: 'messageId', action: VOICEMAIL_ACTION.DELETE},\n };\n\n metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL,\n VOICEMAIL_ACTION.DELETE,\n METRIC_TYPE.BEHAVIORAL,\n 'messageId'\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.VOICEMAIL, expectedData2);\n });\n\n it('submit voicemail failure metric', () => {\n const errorMessage = 'User is not authenticated';\n const expectedData1 = {\n tags: {\n action: VOICEMAIL_ACTION.GET_VOICEMAILS,\n device_id: mockDeviceInfo.device.deviceId,\n message_id: undefined,\n error: errorMessage,\n status_code: 401,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n calling_sdk_version: MOCK_VERSION_NUMBER,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL_ERROR,\n VOICEMAIL_ACTION.GET_VOICEMAILS,\n METRIC_TYPE.BEHAVIORAL,\n undefined,\n errorMessage,\n 401\n );\n expect(mockSubmitClientMetric).toBeCalledOnceWith(\n METRIC_EVENT.VOICEMAIL_ERROR,\n expectedData1\n );\n\n mockSubmitClientMetric.mockClear();\n\n const expectedData2 = {\n ...expectedData1,\n tags: {...expectedData1.tags, message_id: 'messageId', action: VOICEMAIL_ACTION.DELETE},\n };\n\n metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL_ERROR,\n VOICEMAIL_ACTION.DELETE,\n METRIC_TYPE.BEHAVIORAL,\n 'messageId',\n errorMessage,\n 401\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(\n METRIC_EVENT.VOICEMAIL_ERROR,\n expectedData2\n );\n });\n\n it('submit unknown voicemail metric', () => {\n const logSpy = jest.spyOn(log, 'warn');\n\n metricManager.submitVoicemailMetric(\n 'invalidMetricName' as unknown as METRIC_EVENT,\n VOICEMAIL_ACTION.GET_VOICEMAILS,\n METRIC_TYPE.BEHAVIORAL\n );\n\n expect(mockSubmitClientMetric).not.toBeCalled();\n expect(logSpy).toBeCalledOnceWith(\n 'Invalid metric name received. Rejecting request to submit metric.',\n {\n file: 'metric',\n method: 'submitVoicemailMetric',\n }\n );\n });\n });\n\n describe('Calling_Sdk_Version fallback test', () => {\n it('submit metric with fallback version', () => {\n process.env = {};\n metricManager.setDeviceInfo(mockDeviceInfo);\n const expectedData = {\n tags: {\n device_id: mockDeviceInfo.device.deviceId,\n service_indicator: ServiceIndicator.CALLING,\n },\n fields: {\n device_url: mockDeviceInfo.device.clientDeviceUri,\n mobius_url: mockDeviceInfo.device.uri,\n calling_sdk_version: VERSION,\n call_id: mockCallId,\n correlation_id: mockCorrelationId,\n },\n type: METRIC_TYPE.BEHAVIORAL,\n };\n\n metricManager.submitBNRMetric(\n METRIC_EVENT.BNR_ENABLED,\n METRIC_TYPE.BEHAVIORAL,\n mockCallId,\n mockCorrelationId\n );\n\n expect(mockSubmitClientMetric).toBeCalledOnceWith(METRIC_EVENT.BNR_ENABLED, expectedData);\n });\n });\n});\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["METRIC_TYPE","exports","METRIC_EVENT","REG_ACTION","TRANSFER_ACTION","VOICEMAIL_ACTION","UPLOAD_LOGS_ACTION"],"sources":["types.ts"],"sourcesContent":["import {LineError} from '../Errors/catalog/LineError';\nimport {CallError, CallingClientError} from '../Errors';\nimport {CallId, CorrelationId, IDeviceInfo} 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 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 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}\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 const UPLOAD_LOGS_ACTION = 'upload_logs';\n\nexport interface IMetricManager {\n setDeviceInfo: (deviceInfo: IDeviceInfo) => void;\n submitRegistrationMetric: (\n name: METRIC_EVENT,\n metricAction: REG_ACTION,\n type: METRIC_TYPE,\n error: LineError | CallingClientError | undefined\n ) => void;\n submitBNRMetric: (\n name: METRIC_EVENT,\n type: METRIC_TYPE,\n callId: CallId,\n correlationId: CorrelationId\n ) => void;\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 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 submitVoicemailMetric: (\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n messageId?: string,\n voicemailError?: string,\n statusCode?: number\n ) => void;\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 ) => 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;EAAA,OAAZA,YAAY;AAAA;AAAA,IAeZC,UAAU,GAAAF,OAAA,CAAAE,UAAA,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAAA,IAMVC,eAAe,GAAAH,OAAA,CAAAG,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAA,IAKfC,gBAAgB,GAAAJ,OAAA,CAAAI,gBAAA,0BAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;AAUrB,IAAMC,kBAAkB,GAAAL,OAAA,CAAAK,kBAAA,GAAG,aAAa"}
1
+ {"version":3,"names":["METRIC_TYPE","exports","METRIC_EVENT","REG_ACTION","TRANSFER_ACTION","VOICEMAIL_ACTION","UPLOAD_LOGS_ACTION"],"sources":["types.ts"],"sourcesContent":["import {LineError} from '../Errors/catalog/LineError';\nimport {CallError, CallingClientError} from '../Errors';\nimport {CallId, CorrelationId, IDeviceInfo} 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 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 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}\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 interface IMetricManager {\n setDeviceInfo: (deviceInfo: IDeviceInfo) => void;\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 submitBNRMetric: (\n name: METRIC_EVENT,\n type: METRIC_TYPE,\n callId: CallId,\n correlationId: CorrelationId\n ) => void;\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 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 submitVoicemailMetric: (\n name: METRIC_EVENT,\n metricAction: string,\n type: METRIC_TYPE,\n messageId?: string,\n voicemailError?: string,\n statusCode?: number\n ) => void;\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 ) => 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;EAAA,OAAZA,YAAY;AAAA;AAAA,IAeZC,UAAU,GAAAF,OAAA,CAAAE,UAAA,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAAA,IAMVC,eAAe,GAAAH,OAAA,CAAAG,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAA,IAKfC,gBAAgB,GAAAJ,OAAA,CAAAI,gBAAA,0BAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;AAYrB,IAAMC,kBAAkB,GAAAL,OAAA,CAAAK,kBAAA,GAAG,aAAa"}
@@ -239,101 +239,102 @@ function _handleRegistrationErrors() {
239
239
  finalError = false;
240
240
  _Logger.default.warn("Status code: -> ".concat(errorCode), loggerContext);
241
241
  _context.t0 = errorCode;
242
- _context.next = _context.t0 === _types2.ERROR_CODE.BAD_REQUEST ? 7 : _context.t0 === _types2.ERROR_CODE.UNAUTHORIZED ? 12 : _context.t0 === _types2.ERROR_CODE.DEVICE_NOT_FOUND ? 17 : _context.t0 === _types2.ERROR_CODE.TOO_MANY_REQUESTS ? 22 : _context.t0 === _types2.ERROR_CODE.INTERNAL_SERVER_ERROR ? 26 : _context.t0 === _types2.ERROR_CODE.SERVICE_UNAVAILABLE ? 30 : _context.t0 === _types2.ERROR_CODE.FORBIDDEN ? 34 : 69;
242
+ _context.next = _context.t0 === _types2.ERROR_CODE.BAD_REQUEST ? 7 : _context.t0 === _types2.ERROR_CODE.UNAUTHORIZED ? 12 : _context.t0 === _types2.ERROR_CODE.DEVICE_NOT_FOUND ? 17 : _context.t0 === _types2.ERROR_CODE.TOO_MANY_REQUESTS ? 22 : _context.t0 === _types2.ERROR_CODE.INTERNAL_SERVER_ERROR ? 27 : _context.t0 === _types2.ERROR_CODE.SERVICE_UNAVAILABLE ? 31 : _context.t0 === _types2.ERROR_CODE.FORBIDDEN ? 35 : 70;
243
243
  break;
244
244
  case 7:
245
245
  finalError = true;
246
246
  _Logger.default.warn("400 Bad Request", loggerContext);
247
- updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.SERVER_ERROR, 'Invalid input. Please verify the required parameters, sign out and then sign back in with the valid data', _types3.RegistrationStatus.INACTIVE, lineError);
247
+ updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.BAD_REQUEST, 'Invalid input. Please verify the required parameters, sign out and then sign back in with the valid data', _types3.RegistrationStatus.INACTIVE, lineError);
248
248
  emitterCb(lineError, finalError);
249
- return _context.abrupt("break", 72);
249
+ return _context.abrupt("break", 73);
250
250
  case 12:
251
251
  // Return it to the Caller
252
252
  finalError = true;
253
253
  _Logger.default.warn("401 Unauthorized", loggerContext);
254
254
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.TOKEN_ERROR, 'User is unauthorized due to an expired token. Sign out, then sign back in.', _types3.RegistrationStatus.INACTIVE, lineError);
255
255
  emitterCb(lineError, finalError);
256
- return _context.abrupt("break", 72);
256
+ return _context.abrupt("break", 73);
257
257
  case 17:
258
258
  finalError = true;
259
259
  _Logger.default.warn("404 Device Not Found", loggerContext);
260
260
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.NOT_FOUND, 'Webex Calling is unable to find your device. Sign out, then sign back in', _types3.RegistrationStatus.INACTIVE, lineError);
261
261
  emitterCb(lineError, finalError);
262
- return _context.abrupt("break", 72);
262
+ return _context.abrupt("break", 73);
263
263
  case 22:
264
264
  _Logger.default.warn("429 Too Many Requests", loggerContext);
265
+ updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.TOO_MANY_REQUESTS, 'Server is handling too many request at the time. Wait a moment and try again', _types3.RegistrationStatus.INACTIVE, lineError);
265
266
  caller = loggerContext.method || 'handleErrors';
266
267
  if (retry429Cb && err.headers) {
267
268
  retryAfter = Number(err.headers['retry-after']);
268
269
  retry429Cb(retryAfter, caller);
269
270
  }
270
- return _context.abrupt("break", 72);
271
- case 26:
271
+ return _context.abrupt("break", 73);
272
+ case 27:
272
273
  _Logger.default.warn("500 Internal Server Error", loggerContext);
273
274
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.SERVER_ERROR, 'An unknown error occurred while placing the request. Wait a moment and try again.', _types3.RegistrationStatus.INACTIVE, lineError);
274
275
  emitterCb(lineError, finalError);
275
- return _context.abrupt("break", 72);
276
- case 30:
276
+ return _context.abrupt("break", 73);
277
+ case 31:
277
278
  _Logger.default.warn("503 Service Unavailable", loggerContext);
278
279
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.SERVICE_UNAVAILABLE, 'An error occurred on the server while processing the request. Wait a moment and try again.', _types3.RegistrationStatus.INACTIVE, lineError);
279
280
  emitterCb(lineError, finalError);
280
- return _context.abrupt("break", 72);
281
- case 34:
281
+ return _context.abrupt("break", 73);
282
+ case 35:
282
283
  _Logger.default.warn("403 Forbidden", loggerContext);
283
284
  errorBody = err.body;
284
285
  if (errorBody) {
285
- _context.next = 41;
286
+ _context.next = 42;
286
287
  break;
287
288
  }
288
289
  _Logger.default.warn('Error response has no body, throwing default error', loggerContext);
289
290
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.FORBIDDEN_ERROR, 'An unauthorized action has been received. This action has been blocked. Please contact the administrator if this persists.', _types3.RegistrationStatus.INACTIVE, lineError);
290
291
  emitterCb(lineError, finalError);
291
292
  return _context.abrupt("return", finalError);
292
- case 41:
293
+ case 42:
293
294
  code = Number(errorBody.errorCode);
294
295
  _Logger.default.warn("Error code found : ".concat(code), loggerContext);
295
296
  _context.t1 = code;
296
- _context.next = _context.t1 === _types2.DEVICE_ERROR_CODE.DEVICE_LIMIT_EXCEEDED ? 46 : _context.t1 === _types2.DEVICE_ERROR_CODE.DEVICE_CREATION_DISABLED ? 53 : _context.t1 === _types2.DEVICE_ERROR_CODE.DEVICE_CREATION_FAILED ? 59 : 64;
297
+ _context.next = _context.t1 === _types2.DEVICE_ERROR_CODE.DEVICE_LIMIT_EXCEEDED ? 47 : _context.t1 === _types2.DEVICE_ERROR_CODE.DEVICE_CREATION_DISABLED ? 54 : _context.t1 === _types2.DEVICE_ERROR_CODE.DEVICE_CREATION_FAILED ? 60 : 65;
297
298
  break;
298
- case 46:
299
+ case 47:
299
300
  errorMessage = 'User device limit exceeded';
300
301
  _Logger.default.warn(errorMessage, loggerContext);
301
302
  if (!restoreRegCb) {
302
- _context.next = 52;
303
+ _context.next = 53;
303
304
  break;
304
305
  }
305
306
  _caller = loggerContext.method || 'handleErrors';
306
- _context.next = 52;
307
+ _context.next = 53;
307
308
  return restoreRegCb(errorBody, _caller);
308
- case 52:
309
- return _context.abrupt("break", 68);
310
309
  case 53:
310
+ return _context.abrupt("break", 69);
311
+ case 54:
311
312
  _errorMessage = 'User is not configured for WebRTC calling. Please contact the administrator to resolve this issue.';
312
313
  finalError = true;
313
314
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.FORBIDDEN_ERROR, _errorMessage, _types3.RegistrationStatus.INACTIVE, lineError);
314
315
  _Logger.default.warn(_errorMessage, loggerContext);
315
316
  emitterCb(lineError, true);
316
- return _context.abrupt("break", 68);
317
- case 59:
317
+ return _context.abrupt("break", 69);
318
+ case 60:
318
319
  _errorMessage2 = 'An unknown error occurred while provisioning the device. Wait a moment and try again.';
319
320
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.FORBIDDEN_ERROR, _errorMessage2, _types3.RegistrationStatus.INACTIVE, lineError);
320
321
  _Logger.default.warn(_errorMessage2, loggerContext);
321
322
  emitterCb(lineError, finalError);
322
- return _context.abrupt("break", 68);
323
- case 64:
323
+ return _context.abrupt("break", 69);
324
+ case 65:
324
325
  _errorMessage3 = 'An unknown error occurred. Wait a moment and try again. Please contact the administrator if the problem persists.';
325
326
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.FORBIDDEN_ERROR, _errorMessage3, _types3.RegistrationStatus.INACTIVE, lineError);
326
327
  _Logger.default.warn(_errorMessage3, loggerContext);
327
328
  emitterCb(lineError, finalError);
328
- case 68:
329
- return _context.abrupt("break", 72);
330
329
  case 69:
330
+ return _context.abrupt("break", 73);
331
+ case 70:
331
332
  updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.DEFAULT, 'Unknown error', _types3.RegistrationStatus.INACTIVE, lineError);
332
333
  _Logger.default.warn("Unknown Error", loggerContext);
333
334
  emitterCb(lineError, finalError);
334
- case 72:
335
- return _context.abrupt("return", finalError);
336
335
  case 73:
336
+ return _context.abrupt("return", finalError);
337
+ case 74:
337
338
  case "end":
338
339
  return _context.stop();
339
340
  }
@@ -367,23 +368,29 @@ function _handleCallingClientErrors() {
367
368
  finalError = false;
368
369
  _Logger.default.warn("Status code: -> ".concat(errorCode), loggerContext);
369
370
  _context2.t0 = errorCode;
370
- _context2.next = _context2.t0 === _types2.ERROR_CODE.INTERNAL_SERVER_ERROR ? 7 : 11;
371
+ _context2.next = _context2.t0 === _types2.ERROR_CODE.UNAUTHORIZED ? 7 : _context2.t0 === _types2.ERROR_CODE.INTERNAL_SERVER_ERROR ? 12 : 16;
371
372
  break;
372
373
  case 7:
374
+ finalError = true;
375
+ _Logger.default.warn("401 Unauthorized", loggerContext);
376
+ updateErrorContext(loggerContext, _types2.ERROR_TYPE.TOKEN_ERROR, 'User is unauthorized due to an expired token.', clientError);
377
+ emitterCb(clientError, finalError);
378
+ return _context2.abrupt("break", 19);
379
+ case 12:
373
380
  _Logger.default.warn("500 Internal Server Error", loggerContext);
374
381
  updateErrorContext(loggerContext, _types2.ERROR_TYPE.SERVER_ERROR, 'An unknown error occurred while placing the request. Wait a moment and try again.', clientError);
375
382
  emitterCb(clientError, finalError);
376
- return _context2.abrupt("break", 14);
377
- case 11:
383
+ return _context2.abrupt("break", 19);
384
+ case 16:
378
385
  updateErrorContext(loggerContext, _types2.ERROR_TYPE.DEFAULT, 'Unknown error', clientError);
379
386
  _Logger.default.warn("Unknown Error", loggerContext);
380
387
  emitterCb(clientError, finalError);
381
- case 14:
382
- _context2.next = 16;
388
+ case 19:
389
+ _context2.next = 21;
383
390
  return uploadLogs();
384
- case 16:
391
+ case 21:
385
392
  return _context2.abrupt("return", finalError);
386
- case 17:
393
+ case 22:
387
394
  case "end":
388
395
  return _context2.stop();
389
396
  }