@webex/calling 3.0.0-next.6 → 3.0.0-next.7

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 (161) hide show
  1. package/dist/CallHistory/CallHistory.js +203 -0
  2. package/dist/CallHistory/CallHistory.js.map +1 -0
  3. package/dist/CallHistory/CallHistory.test.js +133 -0
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -0
  5. package/dist/CallHistory/callHistoryFixtures.js +310 -0
  6. package/dist/CallHistory/callHistoryFixtures.js.map +1 -0
  7. package/dist/CallHistory/constants.js +26 -0
  8. package/dist/CallHistory/constants.js.map +1 -0
  9. package/dist/CallHistory/types.js +7 -0
  10. package/dist/CallHistory/types.js.map +1 -0
  11. package/dist/CallSettings/CallSettings.js +276 -0
  12. package/dist/CallSettings/CallSettings.js.map +1 -0
  13. package/dist/CallSettings/CallSettings.test.js +122 -0
  14. package/dist/CallSettings/CallSettings.test.js.map +1 -0
  15. package/dist/CallSettings/UcmBackendConnector.js +217 -0
  16. package/dist/CallSettings/UcmBackendConnector.js.map +1 -0
  17. package/dist/CallSettings/UcmBackendConnector.test.js +227 -0
  18. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -0
  19. package/dist/CallSettings/WxCallBackendConnector.js +541 -0
  20. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -0
  21. package/dist/CallSettings/WxCallBackendConnector.test.js +802 -0
  22. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -0
  23. package/dist/CallSettings/constants.js +30 -0
  24. package/dist/CallSettings/constants.js.map +1 -0
  25. package/dist/CallSettings/testFixtures.js +72 -0
  26. package/dist/CallSettings/testFixtures.js.map +1 -0
  27. package/dist/CallSettings/types.js +7 -0
  28. package/dist/CallSettings/types.js.map +1 -0
  29. package/dist/CallingClient/CallingClient.js +572 -0
  30. package/dist/CallingClient/CallingClient.js.map +1 -0
  31. package/dist/CallingClient/CallingClient.test.js +931 -0
  32. package/dist/CallingClient/CallingClient.test.js.map +1 -0
  33. package/dist/CallingClient/callRecordFixtures.js +103 -0
  34. package/dist/CallingClient/callRecordFixtures.js.map +1 -0
  35. package/dist/CallingClient/calling/CallerId/index.js +287 -0
  36. package/dist/CallingClient/calling/CallerId/index.js.map +1 -0
  37. package/dist/CallingClient/calling/CallerId/index.test.js +274 -0
  38. package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -0
  39. package/dist/CallingClient/calling/CallerId/types.js +7 -0
  40. package/dist/CallingClient/calling/CallerId/types.js.map +1 -0
  41. package/dist/CallingClient/calling/call.js +2995 -0
  42. package/dist/CallingClient/calling/call.js.map +1 -0
  43. package/dist/CallingClient/calling/call.test.js +2614 -0
  44. package/dist/CallingClient/calling/call.test.js.map +1 -0
  45. package/dist/CallingClient/calling/callManager.js +443 -0
  46. package/dist/CallingClient/calling/callManager.js.map +1 -0
  47. package/dist/CallingClient/calling/callManager.test.js +683 -0
  48. package/dist/CallingClient/calling/callManager.test.js.map +1 -0
  49. package/dist/CallingClient/calling/index.js +30 -0
  50. package/dist/CallingClient/calling/index.js.map +1 -0
  51. package/dist/CallingClient/calling/types.js +71 -0
  52. package/dist/CallingClient/calling/types.js.map +1 -0
  53. package/dist/CallingClient/callingClientFixtures.js +53 -0
  54. package/dist/CallingClient/callingClientFixtures.js.map +1 -0
  55. package/dist/CallingClient/constants.js +226 -0
  56. package/dist/CallingClient/constants.js.map +1 -0
  57. package/dist/CallingClient/line/index.js +312 -0
  58. package/dist/CallingClient/line/index.js.map +1 -0
  59. package/dist/CallingClient/line/line.test.js +270 -0
  60. package/dist/CallingClient/line/line.test.js.map +1 -0
  61. package/dist/CallingClient/line/types.js +25 -0
  62. package/dist/CallingClient/line/types.js.map +1 -0
  63. package/dist/CallingClient/registration/index.js +19 -0
  64. package/dist/CallingClient/registration/index.js.map +1 -0
  65. package/dist/CallingClient/registration/register.js +1295 -0
  66. package/dist/CallingClient/registration/register.js.map +1 -0
  67. package/dist/CallingClient/registration/register.test.js +838 -0
  68. package/dist/CallingClient/registration/register.test.js.map +1 -0
  69. package/dist/CallingClient/registration/registerFixtures.js +41 -0
  70. package/dist/CallingClient/registration/registerFixtures.js.map +1 -0
  71. package/dist/CallingClient/registration/types.js +7 -0
  72. package/dist/CallingClient/registration/types.js.map +1 -0
  73. package/dist/CallingClient/types.js +7 -0
  74. package/dist/CallingClient/types.js.map +1 -0
  75. package/dist/Contacts/ContactsClient.js +1139 -0
  76. package/dist/Contacts/ContactsClient.js.map +1 -0
  77. package/dist/Contacts/ContactsClient.test.js +725 -0
  78. package/dist/Contacts/ContactsClient.test.js.map +1 -0
  79. package/dist/Contacts/constants.js +36 -0
  80. package/dist/Contacts/constants.js.map +1 -0
  81. package/dist/Contacts/contactFixtures.js +340 -0
  82. package/dist/Contacts/contactFixtures.js.map +1 -0
  83. package/dist/Contacts/types.js +20 -0
  84. package/dist/Contacts/types.js.map +1 -0
  85. package/dist/Errors/catalog/CallError.js +94 -0
  86. package/dist/Errors/catalog/CallError.js.map +1 -0
  87. package/dist/Errors/catalog/CallingDeviceError.js +88 -0
  88. package/dist/Errors/catalog/CallingDeviceError.js.map +1 -0
  89. package/dist/Errors/catalog/ExtendedError.js +45 -0
  90. package/dist/Errors/catalog/ExtendedError.js.map +1 -0
  91. package/dist/Errors/catalog/LineError.js +90 -0
  92. package/dist/Errors/catalog/LineError.js.map +1 -0
  93. package/dist/Errors/index.js +21 -0
  94. package/dist/Errors/index.js.map +1 -0
  95. package/dist/Errors/types.js +62 -0
  96. package/dist/Errors/types.js.map +1 -0
  97. package/dist/Events/impl/index.js +82 -0
  98. package/dist/Events/impl/index.js.map +1 -0
  99. package/dist/Events/types.js +111 -0
  100. package/dist/Events/types.js.map +1 -0
  101. package/dist/Logger/index.js +221 -0
  102. package/dist/Logger/index.js.map +1 -0
  103. package/dist/Logger/index.test.js +62 -0
  104. package/dist/Logger/index.test.js.map +1 -0
  105. package/dist/Logger/types.js +37 -0
  106. package/dist/Logger/types.js.map +1 -0
  107. package/dist/Metrics/index.js +329 -0
  108. package/dist/Metrics/index.js.map +1 -0
  109. package/dist/Metrics/index.test.js +291 -0
  110. package/dist/Metrics/index.test.js.map +1 -0
  111. package/dist/Metrics/types.js +50 -0
  112. package/dist/Metrics/types.js.map +1 -0
  113. package/dist/SDKConnector/index.js +105 -0
  114. package/dist/SDKConnector/index.js.map +1 -0
  115. package/dist/SDKConnector/index.test.js +9 -0
  116. package/dist/SDKConnector/index.test.js.map +1 -0
  117. package/dist/SDKConnector/types.js +7 -0
  118. package/dist/SDKConnector/types.js.map +1 -0
  119. package/dist/SDKConnector/utils.js +40 -0
  120. package/dist/SDKConnector/utils.js.map +1 -0
  121. package/dist/SDKConnector/utils.test.js +9 -0
  122. package/dist/SDKConnector/utils.test.js.map +1 -0
  123. package/dist/Voicemail/BroadworksBackendConnector.js +632 -0
  124. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -0
  125. package/dist/Voicemail/BroadworksBackendConnector.test.js +733 -0
  126. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -0
  127. package/dist/Voicemail/UcmBackendConnector.js +566 -0
  128. package/dist/Voicemail/UcmBackendConnector.js.map +1 -0
  129. package/dist/Voicemail/UcmBackendConnector.test.js +628 -0
  130. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -0
  131. package/dist/Voicemail/Voicemail.js +378 -0
  132. package/dist/Voicemail/Voicemail.js.map +1 -0
  133. package/dist/Voicemail/Voicemail.test.js +226 -0
  134. package/dist/Voicemail/Voicemail.test.js.map +1 -0
  135. package/dist/Voicemail/WxCallBackendConnector.js +540 -0
  136. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -0
  137. package/dist/Voicemail/WxCallBackendConnector.test.js +942 -0
  138. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -0
  139. package/dist/Voicemail/constants.js +66 -0
  140. package/dist/Voicemail/constants.js.map +1 -0
  141. package/dist/Voicemail/types.js +7 -0
  142. package/dist/Voicemail/types.js.map +1 -0
  143. package/dist/Voicemail/voicemailFixture.js +559 -0
  144. package/dist/Voicemail/voicemailFixture.js.map +1 -0
  145. package/dist/api.js +134 -0
  146. package/dist/api.js.map +1 -0
  147. package/dist/common/Utils.js +1264 -0
  148. package/dist/common/Utils.js.map +1 -0
  149. package/dist/common/Utils.test.js +1227 -0
  150. package/dist/common/Utils.test.js.map +1 -0
  151. package/dist/common/constants.js +90 -0
  152. package/dist/common/constants.js.map +1 -0
  153. package/dist/common/index.js +19 -0
  154. package/dist/common/index.js.map +1 -0
  155. package/dist/common/testUtil.js +968 -0
  156. package/dist/common/testUtil.js.map +1 -0
  157. package/dist/common/types.js +75 -0
  158. package/dist/common/types.js.map +1 -0
  159. package/dist/index.js +63 -0
  160. package/dist/index.js.map +1 -0
  161. package/package.json +2 -2
@@ -0,0 +1,329 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getMetricManager = exports.default = void 0;
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
12
+ var _constants = require("../CallingClient/constants");
13
+ var _types = require("./types");
14
+ var _Logger = _interopRequireDefault(require("../Logger"));
15
+ var metricManager;
16
+
17
+ /**
18
+ *
19
+ */
20
+ var MetricManager = /*#__PURE__*/function () {
21
+ /**
22
+ * @param webex - Webex object used to send metrics.
23
+ * @param indicator - Service Indicator.
24
+ */
25
+ function MetricManager(webex, indicator) {
26
+ (0, _classCallCheck2.default)(this, MetricManager);
27
+ (0, _defineProperty2.default)(this, "webex", void 0);
28
+ (0, _defineProperty2.default)(this, "deviceInfo", void 0);
29
+ (0, _defineProperty2.default)(this, "serviceIndicator", void 0);
30
+ _Logger.default.info('Initializing metric manager...', {
31
+ file: _constants.METRIC_FILE
32
+ });
33
+ this.webex = webex;
34
+ this.serviceIndicator = indicator;
35
+ }
36
+
37
+ /**
38
+ * @param deviceInfo - DeviceInfo object.
39
+ */
40
+ (0, _createClass2.default)(MetricManager, [{
41
+ key: "setDeviceInfo",
42
+ value: function setDeviceInfo(deviceInfo) {
43
+ this.deviceInfo = deviceInfo;
44
+ }
45
+
46
+ /**
47
+ * @param name - Name of the metric being submitted.
48
+ * @param metricAction - Type of action sent in the metric.
49
+ * @param type - Type of metric.
50
+ * @param clientError - Error object used to populate error details in metric.
51
+ */
52
+ }, {
53
+ key: "submitRegistrationMetric",
54
+ value: function submitRegistrationMetric(name, metricAction, type, clientError) {
55
+ var data;
56
+ switch (name) {
57
+ case _types.METRIC_EVENT.REGISTRATION:
58
+ {
59
+ var _this$deviceInfo, _this$deviceInfo$devi, _this$deviceInfo2, _this$deviceInfo2$dev, _this$deviceInfo3, _this$deviceInfo3$dev;
60
+ data = {
61
+ tags: {
62
+ action: metricAction,
63
+ device_id: (_this$deviceInfo = this.deviceInfo) === null || _this$deviceInfo === void 0 ? void 0 : (_this$deviceInfo$devi = _this$deviceInfo.device) === null || _this$deviceInfo$devi === void 0 ? void 0 : _this$deviceInfo$devi.deviceId,
64
+ service_indicator: this.serviceIndicator
65
+ },
66
+ fields: {
67
+ device_url: (_this$deviceInfo2 = this.deviceInfo) === null || _this$deviceInfo2 === void 0 ? void 0 : (_this$deviceInfo2$dev = _this$deviceInfo2.device) === null || _this$deviceInfo2$dev === void 0 ? void 0 : _this$deviceInfo2$dev.clientDeviceUri,
68
+ mobius_url: (_this$deviceInfo3 = this.deviceInfo) === null || _this$deviceInfo3 === void 0 ? void 0 : (_this$deviceInfo3$dev = _this$deviceInfo3.device) === null || _this$deviceInfo3$dev === void 0 ? void 0 : _this$deviceInfo3$dev.uri,
69
+ calling_sdk_version: _constants.VERSION
70
+ },
71
+ type: type
72
+ };
73
+ break;
74
+ }
75
+ case _types.METRIC_EVENT.REGISTRATION_ERROR:
76
+ {
77
+ if (clientError) {
78
+ var _this$deviceInfo4, _this$deviceInfo4$dev, _this$deviceInfo5, _this$deviceInfo5$dev, _this$deviceInfo6, _this$deviceInfo6$dev;
79
+ data = {
80
+ tags: {
81
+ action: metricAction,
82
+ device_id: (_this$deviceInfo4 = this.deviceInfo) === null || _this$deviceInfo4 === void 0 ? void 0 : (_this$deviceInfo4$dev = _this$deviceInfo4.device) === null || _this$deviceInfo4$dev === void 0 ? void 0 : _this$deviceInfo4$dev.deviceId,
83
+ service_indicator: this.serviceIndicator
84
+ },
85
+ fields: {
86
+ device_url: (_this$deviceInfo5 = this.deviceInfo) === null || _this$deviceInfo5 === void 0 ? void 0 : (_this$deviceInfo5$dev = _this$deviceInfo5.device) === null || _this$deviceInfo5$dev === void 0 ? void 0 : _this$deviceInfo5$dev.clientDeviceUri,
87
+ mobius_url: (_this$deviceInfo6 = this.deviceInfo) === null || _this$deviceInfo6 === void 0 ? void 0 : (_this$deviceInfo6$dev = _this$deviceInfo6.device) === null || _this$deviceInfo6$dev === void 0 ? void 0 : _this$deviceInfo6$dev.uri,
88
+ calling_sdk_version: _constants.VERSION,
89
+ error: clientError.getError().message,
90
+ error_type: clientError.getError().type
91
+ },
92
+ type: type
93
+ };
94
+ }
95
+ break;
96
+ }
97
+ default:
98
+ _Logger.default.warn('Invalid metric name received. Rejecting request to submit metric.', {
99
+ file: _constants.METRIC_FILE,
100
+ method: this.submitRegistrationMetric.name
101
+ });
102
+ break;
103
+ }
104
+ if (data) {
105
+ this.webex.internal.metrics.submitClientMetrics(name, data);
106
+ }
107
+ }
108
+
109
+ /**
110
+ * @param name - Name of the metric being submitted.
111
+ * @param metricAction - Type of action sent in the metric.
112
+ * @param type - Type of metric.
113
+ * @param callId - Call ID of the call sending the metric.
114
+ * @param correlationId - Correlation ID of the call sending the metric.
115
+ * @param callError - Error object used to populate error details in metric.
116
+ */
117
+ }, {
118
+ key: "submitCallMetric",
119
+ value: function submitCallMetric(name, metricAction, type, callId, correlationId, callError) {
120
+ var data;
121
+ switch (name) {
122
+ case _types.METRIC_EVENT.CALL:
123
+ {
124
+ var _this$deviceInfo7, _this$deviceInfo7$dev, _this$deviceInfo8, _this$deviceInfo8$dev, _this$deviceInfo9, _this$deviceInfo9$dev;
125
+ data = {
126
+ tags: {
127
+ action: metricAction,
128
+ device_id: (_this$deviceInfo7 = this.deviceInfo) === null || _this$deviceInfo7 === void 0 ? void 0 : (_this$deviceInfo7$dev = _this$deviceInfo7.device) === null || _this$deviceInfo7$dev === void 0 ? void 0 : _this$deviceInfo7$dev.deviceId,
129
+ service_indicator: this.serviceIndicator
130
+ },
131
+ fields: {
132
+ device_url: (_this$deviceInfo8 = this.deviceInfo) === null || _this$deviceInfo8 === void 0 ? void 0 : (_this$deviceInfo8$dev = _this$deviceInfo8.device) === null || _this$deviceInfo8$dev === void 0 ? void 0 : _this$deviceInfo8$dev.clientDeviceUri,
133
+ mobius_url: (_this$deviceInfo9 = this.deviceInfo) === null || _this$deviceInfo9 === void 0 ? void 0 : (_this$deviceInfo9$dev = _this$deviceInfo9.device) === null || _this$deviceInfo9$dev === void 0 ? void 0 : _this$deviceInfo9$dev.uri,
134
+ calling_sdk_version: _constants.VERSION,
135
+ call_id: callId,
136
+ correlation_id: correlationId
137
+ },
138
+ type: type
139
+ };
140
+ break;
141
+ }
142
+ case _types.METRIC_EVENT.CALL_ERROR:
143
+ {
144
+ if (callError) {
145
+ var _this$deviceInfo10, _this$deviceInfo10$de, _this$deviceInfo11, _this$deviceInfo11$de, _this$deviceInfo12, _this$deviceInfo12$de;
146
+ data = {
147
+ tags: {
148
+ action: metricAction,
149
+ device_id: (_this$deviceInfo10 = this.deviceInfo) === null || _this$deviceInfo10 === void 0 ? void 0 : (_this$deviceInfo10$de = _this$deviceInfo10.device) === null || _this$deviceInfo10$de === void 0 ? void 0 : _this$deviceInfo10$de.deviceId,
150
+ service_indicator: this.serviceIndicator
151
+ },
152
+ fields: {
153
+ device_url: (_this$deviceInfo11 = this.deviceInfo) === null || _this$deviceInfo11 === void 0 ? void 0 : (_this$deviceInfo11$de = _this$deviceInfo11.device) === null || _this$deviceInfo11$de === void 0 ? void 0 : _this$deviceInfo11$de.clientDeviceUri,
154
+ mobius_url: (_this$deviceInfo12 = this.deviceInfo) === null || _this$deviceInfo12 === void 0 ? void 0 : (_this$deviceInfo12$de = _this$deviceInfo12.device) === null || _this$deviceInfo12$de === void 0 ? void 0 : _this$deviceInfo12$de.uri,
155
+ calling_sdk_version: _constants.VERSION,
156
+ call_id: callId,
157
+ correlation_id: correlationId,
158
+ error: callError.getCallError().message,
159
+ error_type: callError.getCallError().type
160
+ },
161
+ type: type
162
+ };
163
+ }
164
+ break;
165
+ }
166
+ default:
167
+ _Logger.default.warn('Invalid metric name received. Rejecting request to submit metric.', {
168
+ file: _constants.METRIC_FILE,
169
+ method: this.submitCallMetric.name
170
+ });
171
+ break;
172
+ }
173
+ if (data) {
174
+ this.webex.internal.metrics.submitClientMetrics(name, data);
175
+ }
176
+ }
177
+
178
+ /**
179
+ * @param name - Name of the metric being submitted.
180
+ * @param metricAction - Type of action sent in the metric.
181
+ * @param type - Type of metric.
182
+ * @param callId - Call ID of the call sending the metric.
183
+ * @param correlationId - Correlation ID of the call sending the metric.
184
+ * @param localSdp - Local SDP information for media metric.
185
+ * @param remoteSdp - Remote SDP information for media metric.
186
+ * @param callError - Error object used to populate error details in metric.
187
+ */
188
+ }, {
189
+ key: "submitMediaMetric",
190
+ value: function submitMediaMetric(name, metricAction, type, callId, correlationId, localSdp, remoteSdp, callError) {
191
+ var data;
192
+ switch (name) {
193
+ case _types.METRIC_EVENT.MEDIA:
194
+ {
195
+ var _this$deviceInfo13, _this$deviceInfo13$de, _this$deviceInfo14, _this$deviceInfo14$de, _this$deviceInfo15, _this$deviceInfo15$de;
196
+ data = {
197
+ tags: {
198
+ action: metricAction,
199
+ device_id: (_this$deviceInfo13 = this.deviceInfo) === null || _this$deviceInfo13 === void 0 ? void 0 : (_this$deviceInfo13$de = _this$deviceInfo13.device) === null || _this$deviceInfo13$de === void 0 ? void 0 : _this$deviceInfo13$de.deviceId,
200
+ service_indicator: this.serviceIndicator
201
+ },
202
+ fields: {
203
+ device_url: (_this$deviceInfo14 = this.deviceInfo) === null || _this$deviceInfo14 === void 0 ? void 0 : (_this$deviceInfo14$de = _this$deviceInfo14.device) === null || _this$deviceInfo14$de === void 0 ? void 0 : _this$deviceInfo14$de.clientDeviceUri,
204
+ mobius_url: (_this$deviceInfo15 = this.deviceInfo) === null || _this$deviceInfo15 === void 0 ? void 0 : (_this$deviceInfo15$de = _this$deviceInfo15.device) === null || _this$deviceInfo15$de === void 0 ? void 0 : _this$deviceInfo15$de.uri,
205
+ calling_sdk_version: _constants.VERSION,
206
+ call_id: callId,
207
+ correlation_id: correlationId,
208
+ local_media_details: localSdp,
209
+ remote_media_details: remoteSdp
210
+ },
211
+ type: type
212
+ };
213
+ break;
214
+ }
215
+ case _types.METRIC_EVENT.MEDIA_ERROR:
216
+ {
217
+ if (callError) {
218
+ var _this$deviceInfo16, _this$deviceInfo16$de, _this$deviceInfo17, _this$deviceInfo17$de, _this$deviceInfo18, _this$deviceInfo18$de;
219
+ data = {
220
+ tags: {
221
+ action: metricAction,
222
+ device_id: (_this$deviceInfo16 = this.deviceInfo) === null || _this$deviceInfo16 === void 0 ? void 0 : (_this$deviceInfo16$de = _this$deviceInfo16.device) === null || _this$deviceInfo16$de === void 0 ? void 0 : _this$deviceInfo16$de.deviceId,
223
+ service_indicator: this.serviceIndicator
224
+ },
225
+ fields: {
226
+ device_url: (_this$deviceInfo17 = this.deviceInfo) === null || _this$deviceInfo17 === void 0 ? void 0 : (_this$deviceInfo17$de = _this$deviceInfo17.device) === null || _this$deviceInfo17$de === void 0 ? void 0 : _this$deviceInfo17$de.clientDeviceUri,
227
+ mobius_url: (_this$deviceInfo18 = this.deviceInfo) === null || _this$deviceInfo18 === void 0 ? void 0 : (_this$deviceInfo18$de = _this$deviceInfo18.device) === null || _this$deviceInfo18$de === void 0 ? void 0 : _this$deviceInfo18$de.uri,
228
+ calling_sdk_version: _constants.VERSION,
229
+ call_id: callId,
230
+ correlation_id: correlationId,
231
+ local_media_details: localSdp,
232
+ remote_media_details: remoteSdp,
233
+ error: callError.getCallError().message,
234
+ error_type: callError.getCallError().type
235
+ },
236
+ type: type
237
+ };
238
+ }
239
+ break;
240
+ }
241
+ default:
242
+ _Logger.default.warn('Invalid metric name received. Rejecting request to submit metric.', {
243
+ file: _constants.METRIC_FILE,
244
+ method: this.submitMediaMetric.name
245
+ });
246
+ break;
247
+ }
248
+ if (data) {
249
+ this.webex.internal.metrics.submitClientMetrics(name, data);
250
+ }
251
+ }
252
+
253
+ /**
254
+ * @param name - Name of the metric being submitted.
255
+ * @param metricAction - Type of action sent in the metric.
256
+ * @param type - Type of metric.
257
+ * @param messageId - Message identifier of a Voicemail message.
258
+ * @param voicemailError - Error string used to populate error details in metric.
259
+ * @param statusCode - Status code used to populate error details in metric.
260
+ */
261
+ }, {
262
+ key: "submitVoicemailMetric",
263
+ value: function submitVoicemailMetric(name, metricAction, type, messageId, voicemailError, statusCode) {
264
+ var data;
265
+ switch (name) {
266
+ case _types.METRIC_EVENT.VOICEMAIL:
267
+ {
268
+ var _this$deviceInfo19, _this$deviceInfo19$de, _this$deviceInfo20, _this$deviceInfo20$de;
269
+ data = {
270
+ tags: {
271
+ action: metricAction,
272
+ device_id: (_this$deviceInfo19 = this.deviceInfo) === null || _this$deviceInfo19 === void 0 ? void 0 : (_this$deviceInfo19$de = _this$deviceInfo19.device) === null || _this$deviceInfo19$de === void 0 ? void 0 : _this$deviceInfo19$de.deviceId,
273
+ message_id: messageId
274
+ },
275
+ fields: {
276
+ device_url: (_this$deviceInfo20 = this.deviceInfo) === null || _this$deviceInfo20 === void 0 ? void 0 : (_this$deviceInfo20$de = _this$deviceInfo20.device) === null || _this$deviceInfo20$de === void 0 ? void 0 : _this$deviceInfo20$de.clientDeviceUri,
277
+ calling_sdk_version: _constants.VERSION
278
+ },
279
+ type: type
280
+ };
281
+ break;
282
+ }
283
+ case _types.METRIC_EVENT.VOICEMAIL_ERROR:
284
+ {
285
+ var _this$deviceInfo21, _this$deviceInfo21$de, _this$deviceInfo22, _this$deviceInfo22$de;
286
+ data = {
287
+ tags: {
288
+ action: metricAction,
289
+ device_id: (_this$deviceInfo21 = this.deviceInfo) === null || _this$deviceInfo21 === void 0 ? void 0 : (_this$deviceInfo21$de = _this$deviceInfo21.device) === null || _this$deviceInfo21$de === void 0 ? void 0 : _this$deviceInfo21$de.deviceId,
290
+ message_id: messageId,
291
+ error: voicemailError,
292
+ status_code: statusCode
293
+ },
294
+ fields: {
295
+ device_url: (_this$deviceInfo22 = this.deviceInfo) === null || _this$deviceInfo22 === void 0 ? void 0 : (_this$deviceInfo22$de = _this$deviceInfo22.device) === null || _this$deviceInfo22$de === void 0 ? void 0 : _this$deviceInfo22$de.clientDeviceUri,
296
+ calling_sdk_version: _constants.VERSION
297
+ },
298
+ type: type
299
+ };
300
+ break;
301
+ }
302
+ default:
303
+ _Logger.default.warn('Invalid metric name received. Rejecting request to submit metric.', {
304
+ file: _constants.METRIC_FILE,
305
+ method: this.submitVoicemailMetric.name
306
+ });
307
+ break;
308
+ }
309
+ if (data) {
310
+ this.webex.internal.metrics.submitClientMetrics(name, data);
311
+ }
312
+ }
313
+ }]);
314
+ return MetricManager;
315
+ }();
316
+ /**
317
+ * @param webex - Webex object to communicate with metrics microservice.
318
+ * @param indicator - Service Indicator.
319
+ */
320
+ var getMetricManager = function getMetricManager(webex, indicator) {
321
+ if (!metricManager) {
322
+ metricManager = new MetricManager(webex, indicator);
323
+ }
324
+ return metricManager;
325
+ };
326
+ exports.getMetricManager = getMetricManager;
327
+ var _default = getMetricManager;
328
+ exports.default = _default;
329
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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","setDeviceInfo","deviceInfo","submitRegistrationMetric","name","metricAction","type","clientError","data","METRIC_EVENT","REGISTRATION","_this$deviceInfo","_this$deviceInfo$devi","_this$deviceInfo2","_this$deviceInfo2$dev","_this$deviceInfo3","_this$deviceInfo3$dev","tags","action","device_id","device","deviceId","service_indicator","fields","device_url","clientDeviceUri","mobius_url","uri","calling_sdk_version","VERSION","REGISTRATION_ERROR","_this$deviceInfo4","_this$deviceInfo4$dev","_this$deviceInfo5","_this$deviceInfo5$dev","_this$deviceInfo6","_this$deviceInfo6$dev","error","getError","message","error_type","warn","method","internal","metrics","submitClientMetrics","submitCallMetric","callId","correlationId","callError","CALL","_this$deviceInfo7","_this$deviceInfo7$dev","_this$deviceInfo8","_this$deviceInfo8$dev","_this$deviceInfo9","_this$deviceInfo9$dev","call_id","correlation_id","CALL_ERROR","_this$deviceInfo10","_this$deviceInfo10$de","_this$deviceInfo11","_this$deviceInfo11$de","_this$deviceInfo12","_this$deviceInfo12$de","getCallError","submitMediaMetric","localSdp","remoteSdp","MEDIA","_this$deviceInfo13","_this$deviceInfo13$de","_this$deviceInfo14","_this$deviceInfo14$de","_this$deviceInfo15","_this$deviceInfo15$de","local_media_details","remote_media_details","MEDIA_ERROR","_this$deviceInfo16","_this$deviceInfo16$de","_this$deviceInfo17","_this$deviceInfo17$de","_this$deviceInfo18","_this$deviceInfo18$de","submitVoicemailMetric","messageId","voicemailError","statusCode","VOICEMAIL","_this$deviceInfo19","_this$deviceInfo19$de","_this$deviceInfo20","_this$deviceInfo20$de","message_id","VOICEMAIL_ERROR","_this$deviceInfo21","_this$deviceInfo21$de","_this$deviceInfo22","_this$deviceInfo22$de","status_code","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 /**\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: 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: 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: 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: 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: 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: 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: 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: 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\n/**\n * @param webex - Webex object to communicate with metrics microservice.\n * @param indicator - Service Indicator.\n */\nexport const getMetricManager = (webex: WebexSDK, indicator?: ServiceIndicator): IMetricManager => {\n if (!metricManager) {\n metricManager = new MetricManager(webex, indicator);\n }\n\n return metricManager;\n};\n\nexport default getMetricManager;\n"],"mappings":"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"}