@webex/calling 3.8.0-next.31 → 3.8.0-next.33

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 (145) hide show
  1. package/dist/CallHistory/CallHistory.js +100 -63
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +115 -19
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallHistory/constants.js +9 -1
  6. package/dist/CallHistory/constants.js.map +1 -1
  7. package/dist/CallSettings/CallSettings.js +46 -13
  8. package/dist/CallSettings/CallSettings.js.map +1 -1
  9. package/dist/CallSettings/UcmBackendConnector.js +62 -18
  10. package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
  11. package/dist/CallSettings/UcmBackendConnector.test.js +70 -7
  12. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  13. package/dist/CallSettings/WxCallBackendConnector.js +153 -103
  14. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  15. package/dist/CallSettings/WxCallBackendConnector.test.js +52 -15
  16. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  17. package/dist/CallSettings/constants.js +15 -1
  18. package/dist/CallSettings/constants.js.map +1 -1
  19. package/dist/CallingClient/CallingClient.js +148 -107
  20. package/dist/CallingClient/CallingClient.js.map +1 -1
  21. package/dist/CallingClient/CallingClient.test.js +53 -24
  22. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  23. package/dist/CallingClient/calling/call.js +251 -189
  24. package/dist/CallingClient/calling/call.js.map +1 -1
  25. package/dist/CallingClient/calling/call.test.js +96 -41
  26. package/dist/CallingClient/calling/call.test.js.map +1 -1
  27. package/dist/CallingClient/calling/callManager.js +73 -48
  28. package/dist/CallingClient/calling/callManager.js.map +1 -1
  29. package/dist/CallingClient/calling/callManager.test.js +96 -37
  30. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  31. package/dist/CallingClient/constants.js +104 -3
  32. package/dist/CallingClient/constants.js.map +1 -1
  33. package/dist/CallingClient/line/index.js +47 -18
  34. package/dist/CallingClient/line/index.js.map +1 -1
  35. package/dist/CallingClient/line/line.test.js +2 -2
  36. package/dist/CallingClient/line/line.test.js.map +1 -1
  37. package/dist/CallingClient/registration/register.js +261 -219
  38. package/dist/CallingClient/registration/register.js.map +1 -1
  39. package/dist/CallingClient/registration/register.test.js +533 -155
  40. package/dist/CallingClient/registration/register.test.js.map +1 -1
  41. package/dist/CallingClient/registration/types.js.map +1 -1
  42. package/dist/Contacts/ContactsClient.js +156 -102
  43. package/dist/Contacts/ContactsClient.js.map +1 -1
  44. package/dist/Contacts/ContactsClient.test.js +197 -49
  45. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  46. package/dist/Contacts/constants.js +11 -1
  47. package/dist/Contacts/constants.js.map +1 -1
  48. package/dist/Events/impl/index.js +1 -1
  49. package/dist/Events/impl/index.js.map +1 -1
  50. package/dist/Metrics/index.js +93 -39
  51. package/dist/Metrics/index.js.map +1 -1
  52. package/dist/Metrics/types.js +4 -1
  53. package/dist/Metrics/types.js.map +1 -1
  54. package/dist/SDKConnector/types.js.map +1 -1
  55. package/dist/Voicemail/BroadworksBackendConnector.js +154 -91
  56. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  57. package/dist/Voicemail/BroadworksBackendConnector.test.js +99 -19
  58. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  59. package/dist/Voicemail/UcmBackendConnector.js +105 -54
  60. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  61. package/dist/Voicemail/UcmBackendConnector.test.js +127 -17
  62. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
  63. package/dist/Voicemail/Voicemail.js +198 -79
  64. package/dist/Voicemail/Voicemail.js.map +1 -1
  65. package/dist/Voicemail/Voicemail.test.js +188 -23
  66. package/dist/Voicemail/Voicemail.test.js.map +1 -1
  67. package/dist/Voicemail/WxCallBackendConnector.js +123 -76
  68. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  69. package/dist/Voicemail/WxCallBackendConnector.test.js +69 -6
  70. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  71. package/dist/Voicemail/constants.js +25 -1
  72. package/dist/Voicemail/constants.js.map +1 -1
  73. package/dist/common/Utils.js +167 -104
  74. package/dist/common/Utils.js.map +1 -1
  75. package/dist/common/Utils.test.js +199 -35
  76. package/dist/common/Utils.test.js.map +1 -1
  77. package/dist/common/constants.js +2 -1
  78. package/dist/common/constants.js.map +1 -1
  79. package/dist/common/types.js.map +1 -1
  80. package/dist/module/CallHistory/CallHistory.js +32 -13
  81. package/dist/module/CallHistory/constants.js +6 -0
  82. package/dist/module/CallSettings/CallSettings.js +36 -3
  83. package/dist/module/CallSettings/UcmBackendConnector.js +50 -5
  84. package/dist/module/CallSettings/WxCallBackendConnector.js +54 -18
  85. package/dist/module/CallSettings/constants.js +12 -0
  86. package/dist/module/CallingClient/CallingClient.js +52 -14
  87. package/dist/module/CallingClient/calling/call.js +172 -121
  88. package/dist/module/CallingClient/calling/callManager.js +51 -26
  89. package/dist/module/CallingClient/constants.js +101 -2
  90. package/dist/module/CallingClient/line/index.js +37 -8
  91. package/dist/module/CallingClient/registration/register.js +90 -54
  92. package/dist/module/Contacts/ContactsClient.js +65 -21
  93. package/dist/module/Contacts/constants.js +10 -0
  94. package/dist/module/Events/impl/index.js +1 -1
  95. package/dist/module/Metrics/index.js +49 -1
  96. package/dist/module/Metrics/types.js +3 -0
  97. package/dist/module/Voicemail/BroadworksBackendConnector.js +66 -17
  98. package/dist/module/Voicemail/UcmBackendConnector.js +51 -11
  99. package/dist/module/Voicemail/Voicemail.js +109 -9
  100. package/dist/module/Voicemail/WxCallBackendConnector.js +50 -17
  101. package/dist/module/Voicemail/constants.js +21 -0
  102. package/dist/module/common/Utils.js +50 -12
  103. package/dist/module/common/constants.js +1 -0
  104. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  105. package/dist/types/CallHistory/constants.d.ts +6 -0
  106. package/dist/types/CallHistory/constants.d.ts.map +1 -1
  107. package/dist/types/CallSettings/CallSettings.d.ts.map +1 -1
  108. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  109. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
  110. package/dist/types/CallSettings/constants.d.ts +12 -0
  111. package/dist/types/CallSettings/constants.d.ts.map +1 -1
  112. package/dist/types/CallingClient/CallingClient.d.ts +2 -3
  113. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  114. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  115. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  116. package/dist/types/CallingClient/constants.d.ts +101 -2
  117. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  118. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  119. package/dist/types/CallingClient/registration/register.d.ts +3 -1
  120. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  121. package/dist/types/CallingClient/registration/types.d.ts +1 -0
  122. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  123. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  124. package/dist/types/Contacts/constants.d.ts +10 -0
  125. package/dist/types/Contacts/constants.d.ts.map +1 -1
  126. package/dist/types/Metrics/index.d.ts +1 -1
  127. package/dist/types/Metrics/index.d.ts.map +1 -1
  128. package/dist/types/Metrics/types.d.ts +5 -1
  129. package/dist/types/Metrics/types.d.ts.map +1 -1
  130. package/dist/types/SDKConnector/types.d.ts +8 -2
  131. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  132. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
  133. package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
  134. package/dist/types/Voicemail/Voicemail.d.ts +1 -1
  135. package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
  136. package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
  137. package/dist/types/Voicemail/constants.d.ts +21 -0
  138. package/dist/types/Voicemail/constants.d.ts.map +1 -1
  139. package/dist/types/common/Utils.d.ts +4 -4
  140. package/dist/types/common/Utils.d.ts.map +1 -1
  141. package/dist/types/common/constants.d.ts +1 -0
  142. package/dist/types/common/constants.d.ts.map +1 -1
  143. package/dist/types/common/types.d.ts +12 -0
  144. package/dist/types/common/types.d.ts.map +1 -1
  145. package/package.json +1 -1
@@ -5,9 +5,13 @@ var _Array$from = require("@babel/runtime-corejs2/core-js/array/from");
5
5
  var _Symbol = require("@babel/runtime-corejs2/core-js/symbol");
6
6
  var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator");
7
7
  var _Array$isArray = require("@babel/runtime-corejs2/core-js/array/is-array");
8
- var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
9
- var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
8
+ var _Object$keys2 = require("@babel/runtime-corejs2/core-js/object/keys");
9
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
10
10
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
11
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
12
+ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
13
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
14
+ var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
11
15
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
12
16
  _Object$defineProperty(exports, "__esModule", {
13
17
  value: true
@@ -43,9 +47,11 @@ var _parseInt2 = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/
43
47
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
44
48
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
45
49
  var platform = _interopRequireWildcard(require("platform"));
50
+ var _types = require("../Metrics/types");
51
+ var _Metrics = require("../Metrics");
46
52
  var _CallError = require("../Errors/catalog/CallError");
47
- var _types = require("../Errors/types");
48
- var _types2 = require("./types");
53
+ var _types2 = require("../Errors/types");
54
+ var _types3 = require("./types");
49
55
  var _Logger = _interopRequireDefault(require("../Logger"));
50
56
  var _CallingDeviceError = require("../Errors/catalog/CallingDeviceError");
51
57
  var _constants = require("../CallingClient/constants");
@@ -54,6 +60,8 @@ var _SDKConnector = _interopRequireDefault(require("../SDKConnector"));
54
60
  var _LineError = require("../Errors/catalog/LineError");
55
61
  function _getRequireWildcardCache(e) { if ("function" != typeof _WeakMap) return null; var r = new _WeakMap(), t = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
56
62
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? _Object$getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? _Object$defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
63
+ function ownKeys(e, r) { var t = _Object$keys2(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
64
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
57
65
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
58
66
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
59
67
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } /* eslint-disable no-fallthrough */ /* eslint-disable no-underscore-dangle */ /* eslint-disable @typescript-eslint/no-shadow */
@@ -189,8 +197,8 @@ function updateErrorContext(errContext, type, message, clientError) {
189
197
  * @param file - File name from where error got reported.
190
198
  */
191
199
  function emitFinalFailure(emitterCb, loggerContext) {
192
- var clientError = (0, _LineError.createLineError)('', {}, _types.ERROR_TYPE.DEFAULT, _types2.RegistrationStatus.INACTIVE);
193
- updateLineErrorContext(loggerContext, _types.ERROR_TYPE.SERVICE_UNAVAILABLE, 'An unknown error occurred. Wait a moment and try again. Please contact the administrator if the problem persists.', _types2.RegistrationStatus.INACTIVE, clientError);
200
+ var clientError = (0, _LineError.createLineError)('', {}, _types2.ERROR_TYPE.DEFAULT, _types3.RegistrationStatus.INACTIVE);
201
+ updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.SERVICE_UNAVAILABLE, 'An unknown error occurred. Wait a moment and try again. Please contact the administrator if the problem persists.', _types3.RegistrationStatus.INACTIVE, clientError);
194
202
  emitterCb(clientError);
195
203
  }
196
204
 
@@ -210,7 +218,7 @@ function emitFinalFailure(emitterCb, loggerContext) {
210
218
  * be scheduled to attempt registration again.
211
219
  *
212
220
  */
213
- function handleRegistrationErrors(_x, _x2, _x3, _x4) {
221
+ function handleRegistrationErrors(_x, _x2, _x3, _x4, _x5) {
214
222
  return _handleRegistrationErrors.apply(this, arguments);
215
223
  }
216
224
  /**
@@ -221,97 +229,111 @@ function handleRegistrationErrors(_x, _x2, _x3, _x4) {
221
229
  * @param restoreRegCb - Callback which will try restoring resgistration in case of 403
222
230
  */
223
231
  function _handleRegistrationErrors() {
224
- _handleRegistrationErrors = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(err, emitterCb, loggerContext, restoreRegCb) {
225
- var lineError, errorCode, finalError, errorBody, code, errorMessage, caller, _errorMessage, _errorMessage2, _errorMessage3;
232
+ _handleRegistrationErrors = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(err, emitterCb, loggerContext, retry429Cb, restoreRegCb) {
233
+ var lineError, errorCode, finalError, caller, retryAfter, errorBody, code, errorMessage, _caller, _errorMessage, _errorMessage2, _errorMessage3;
226
234
  return _regenerator.default.wrap(function _callee$(_context) {
227
235
  while (1) switch (_context.prev = _context.next) {
228
236
  case 0:
229
- lineError = (0, _LineError.createLineError)('', {}, _types.ERROR_TYPE.DEFAULT, _types2.RegistrationStatus.INACTIVE);
237
+ lineError = (0, _LineError.createLineError)('', {}, _types2.ERROR_TYPE.DEFAULT, _types3.RegistrationStatus.INACTIVE);
230
238
  errorCode = Number(err.statusCode);
231
239
  finalError = false;
232
240
  _Logger.default.warn("Status code: -> ".concat(errorCode), loggerContext);
233
241
  _context.t0 = errorCode;
234
- _context.next = _context.t0 === _types.ERROR_CODE.UNAUTHORIZED ? 7 : _context.t0 === _types.ERROR_CODE.INTERNAL_SERVER_ERROR ? 12 : _context.t0 === _types.ERROR_CODE.SERVICE_UNAVAILABLE ? 16 : _context.t0 === _types.ERROR_CODE.FORBIDDEN ? 20 : _context.t0 === _types.ERROR_CODE.DEVICE_NOT_FOUND ? 55 : 60;
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;
235
243
  break;
236
244
  case 7:
245
+ finalError = true;
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);
248
+ emitterCb(lineError, finalError);
249
+ return _context.abrupt("break", 72);
250
+ case 12:
237
251
  // Return it to the Caller
238
252
  finalError = true;
239
253
  _Logger.default.warn("401 Unauthorized", loggerContext);
240
- updateLineErrorContext(loggerContext, _types.ERROR_TYPE.TOKEN_ERROR, 'User is unauthorized due to an expired token. Sign out, then sign back in.', _types2.RegistrationStatus.INACTIVE, lineError);
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);
241
255
  emitterCb(lineError, finalError);
242
- return _context.abrupt("break", 63);
243
- case 12:
256
+ return _context.abrupt("break", 72);
257
+ case 17:
258
+ finalError = true;
259
+ _Logger.default.warn("404 Device Not Found", loggerContext);
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
+ emitterCb(lineError, finalError);
262
+ return _context.abrupt("break", 72);
263
+ case 22:
264
+ _Logger.default.warn("429 Too Many Requests", loggerContext);
265
+ caller = loggerContext.method || 'handleErrors';
266
+ if (retry429Cb && err.headers) {
267
+ retryAfter = Number(err.headers['retry-after']);
268
+ retry429Cb(retryAfter, caller);
269
+ }
270
+ return _context.abrupt("break", 72);
271
+ case 26:
244
272
  _Logger.default.warn("500 Internal Server Error", loggerContext);
245
- updateLineErrorContext(loggerContext, _types.ERROR_TYPE.SERVER_ERROR, 'An unknown error occurred while placing the request. Wait a moment and try again.', _types2.RegistrationStatus.INACTIVE, lineError);
273
+ 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);
246
274
  emitterCb(lineError, finalError);
247
- return _context.abrupt("break", 63);
248
- case 16:
275
+ return _context.abrupt("break", 72);
276
+ case 30:
249
277
  _Logger.default.warn("503 Service Unavailable", loggerContext);
250
- updateLineErrorContext(loggerContext, _types.ERROR_TYPE.SERVICE_UNAVAILABLE, 'An error occurred on the server while processing the request. Wait a moment and try again.', _types2.RegistrationStatus.INACTIVE, lineError);
278
+ 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);
251
279
  emitterCb(lineError, finalError);
252
- return _context.abrupt("break", 63);
253
- case 20:
280
+ return _context.abrupt("break", 72);
281
+ case 34:
254
282
  _Logger.default.warn("403 Forbidden", loggerContext);
255
283
  errorBody = err.body;
256
284
  if (errorBody) {
257
- _context.next = 27;
285
+ _context.next = 41;
258
286
  break;
259
287
  }
260
288
  _Logger.default.warn('Error response has no body, throwing default error', loggerContext);
261
- updateLineErrorContext(loggerContext, _types.ERROR_TYPE.FORBIDDEN_ERROR, 'An unauthorized action has been received. This action has been blocked. Please contact the administrator if this persists.', _types2.RegistrationStatus.INACTIVE, lineError);
289
+ 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);
262
290
  emitterCb(lineError, finalError);
263
291
  return _context.abrupt("return", finalError);
264
- case 27:
292
+ case 41:
265
293
  code = Number(errorBody.errorCode);
266
294
  _Logger.default.warn("Error code found : ".concat(code), loggerContext);
267
295
  _context.t1 = code;
268
- _context.next = _context.t1 === _types.DEVICE_ERROR_CODE.DEVICE_LIMIT_EXCEEDED ? 32 : _context.t1 === _types.DEVICE_ERROR_CODE.DEVICE_CREATION_DISABLED ? 39 : _context.t1 === _types.DEVICE_ERROR_CODE.DEVICE_CREATION_FAILED ? 45 : 50;
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;
269
297
  break;
270
- case 32:
298
+ case 46:
271
299
  errorMessage = 'User device limit exceeded';
272
300
  _Logger.default.warn(errorMessage, loggerContext);
273
301
  if (!restoreRegCb) {
274
- _context.next = 38;
302
+ _context.next = 52;
275
303
  break;
276
304
  }
277
- caller = loggerContext.method || 'handleErrors';
278
- _context.next = 38;
279
- return restoreRegCb(errorBody, caller);
280
- case 38:
281
- return _context.abrupt("break", 54);
282
- case 39:
305
+ _caller = loggerContext.method || 'handleErrors';
306
+ _context.next = 52;
307
+ return restoreRegCb(errorBody, _caller);
308
+ case 52:
309
+ return _context.abrupt("break", 68);
310
+ case 53:
283
311
  _errorMessage = 'User is not configured for WebRTC calling. Please contact the administrator to resolve this issue.';
284
312
  finalError = true;
285
- updateLineErrorContext(loggerContext, _types.ERROR_TYPE.FORBIDDEN_ERROR, _errorMessage, _types2.RegistrationStatus.INACTIVE, lineError);
313
+ updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.FORBIDDEN_ERROR, _errorMessage, _types3.RegistrationStatus.INACTIVE, lineError);
286
314
  _Logger.default.warn(_errorMessage, loggerContext);
287
315
  emitterCb(lineError, true);
288
- return _context.abrupt("break", 54);
289
- case 45:
316
+ return _context.abrupt("break", 68);
317
+ case 59:
290
318
  _errorMessage2 = 'An unknown error occurred while provisioning the device. Wait a moment and try again.';
291
- updateLineErrorContext(loggerContext, _types.ERROR_TYPE.FORBIDDEN_ERROR, _errorMessage2, _types2.RegistrationStatus.INACTIVE, lineError);
319
+ updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.FORBIDDEN_ERROR, _errorMessage2, _types3.RegistrationStatus.INACTIVE, lineError);
292
320
  _Logger.default.warn(_errorMessage2, loggerContext);
293
321
  emitterCb(lineError, finalError);
294
- return _context.abrupt("break", 54);
295
- case 50:
322
+ return _context.abrupt("break", 68);
323
+ case 64:
296
324
  _errorMessage3 = 'An unknown error occurred. Wait a moment and try again. Please contact the administrator if the problem persists.';
297
- updateLineErrorContext(loggerContext, _types.ERROR_TYPE.FORBIDDEN_ERROR, _errorMessage3, _types2.RegistrationStatus.INACTIVE, lineError);
325
+ updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.FORBIDDEN_ERROR, _errorMessage3, _types3.RegistrationStatus.INACTIVE, lineError);
298
326
  _Logger.default.warn(_errorMessage3, loggerContext);
299
327
  emitterCb(lineError, finalError);
300
- case 54:
301
- return _context.abrupt("break", 63);
302
- case 55:
303
- finalError = true;
304
- _Logger.default.warn("404 Device Not Found", loggerContext);
305
- updateLineErrorContext(loggerContext, _types.ERROR_TYPE.NOT_FOUND, 'The client has unregistered. Please wait for the client to register before attempting the call. If error persists, sign out, sign back in and attempt the call.', _types2.RegistrationStatus.INACTIVE, lineError);
306
- emitterCb(lineError, finalError);
307
- return _context.abrupt("break", 63);
308
- case 60:
309
- updateLineErrorContext(loggerContext, _types.ERROR_TYPE.DEFAULT, 'Unknown error', _types2.RegistrationStatus.INACTIVE, lineError);
328
+ case 68:
329
+ return _context.abrupt("break", 72);
330
+ case 69:
331
+ updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.DEFAULT, 'Unknown error', _types3.RegistrationStatus.INACTIVE, lineError);
310
332
  _Logger.default.warn("Unknown Error", loggerContext);
311
333
  emitterCb(lineError, finalError);
312
- case 63:
334
+ case 72:
313
335
  return _context.abrupt("return", finalError);
314
- case 64:
336
+ case 73:
315
337
  case "end":
316
338
  return _context.stop();
317
339
  }
@@ -319,7 +341,7 @@ function _handleRegistrationErrors() {
319
341
  }));
320
342
  return _handleRegistrationErrors.apply(this, arguments);
321
343
  }
322
- function handleCallingClientErrors(_x5, _x6, _x7) {
344
+ function handleCallingClientErrors(_x6, _x7, _x8) {
323
345
  return _handleCallingClientErrors.apply(this, arguments);
324
346
  }
325
347
  /**
@@ -340,25 +362,28 @@ function _handleCallingClientErrors() {
340
362
  return _regenerator.default.wrap(function _callee2$(_context2) {
341
363
  while (1) switch (_context2.prev = _context2.next) {
342
364
  case 0:
343
- clientError = (0, _CallingDeviceError.createClientError)('', {}, _types.ERROR_TYPE.DEFAULT, _types2.RegistrationStatus.INACTIVE);
365
+ clientError = (0, _CallingDeviceError.createClientError)('', {}, _types2.ERROR_TYPE.DEFAULT, _types3.RegistrationStatus.INACTIVE);
344
366
  errorCode = Number(err.statusCode);
345
367
  finalError = false;
346
368
  _Logger.default.warn("Status code: -> ".concat(errorCode), loggerContext);
347
369
  _context2.t0 = errorCode;
348
- _context2.next = _context2.t0 === _types.ERROR_CODE.INTERNAL_SERVER_ERROR ? 7 : 11;
370
+ _context2.next = _context2.t0 === _types2.ERROR_CODE.INTERNAL_SERVER_ERROR ? 7 : 11;
349
371
  break;
350
372
  case 7:
351
373
  _Logger.default.warn("500 Internal Server Error", loggerContext);
352
- updateErrorContext(loggerContext, _types.ERROR_TYPE.SERVER_ERROR, 'An unknown error occurred while placing the request. Wait a moment and try again.', clientError);
374
+ updateErrorContext(loggerContext, _types2.ERROR_TYPE.SERVER_ERROR, 'An unknown error occurred while placing the request. Wait a moment and try again.', clientError);
353
375
  emitterCb(clientError, finalError);
354
376
  return _context2.abrupt("break", 14);
355
377
  case 11:
356
- updateErrorContext(loggerContext, _types.ERROR_TYPE.DEFAULT, 'Unknown error', clientError);
378
+ updateErrorContext(loggerContext, _types2.ERROR_TYPE.DEFAULT, 'Unknown error', clientError);
357
379
  _Logger.default.warn("Unknown Error", loggerContext);
358
380
  emitterCb(clientError, finalError);
359
381
  case 14:
382
+ _context2.next = 16;
383
+ return uploadLogs();
384
+ case 16:
360
385
  return _context2.abrupt("return", finalError);
361
- case 15:
386
+ case 17:
362
387
  case "end":
363
388
  return _context2.stop();
364
389
  }
@@ -366,7 +391,7 @@ function _handleCallingClientErrors() {
366
391
  }));
367
392
  return _handleCallingClientErrors.apply(this, arguments);
368
393
  }
369
- function handleCallErrors(_x8, _x9, _x10, _x11, _x12, _x13, _x14) {
394
+ function handleCallErrors(_x9, _x10, _x11, _x12, _x13, _x14, _x15) {
370
395
  return _handleCallErrors.apply(this, arguments);
371
396
  }
372
397
  /**
@@ -387,15 +412,15 @@ function _handleCallErrors() {
387
412
  file: file,
388
413
  method: caller
389
414
  };
390
- callError = (0, _CallError.createCallError)('', loggerContext, _types.ERROR_TYPE.DEFAULT, '', errorLayer);
415
+ callError = (0, _CallError.createCallError)('', loggerContext, _types2.ERROR_TYPE.DEFAULT, '', errorLayer);
391
416
  errorCode = Number(err.statusCode);
392
417
  _Logger.default.warn("Status code: ->".concat(errorCode), loggerContext);
393
418
  _context3.t0 = errorCode;
394
- _context3.next = _context3.t0 === _types.ERROR_CODE.UNAUTHORIZED ? 7 : _context3.t0 === _types.ERROR_CODE.FORBIDDEN ? 11 : _context3.t0 === _types.ERROR_CODE.SERVICE_UNAVAILABLE ? 11 : _context3.t0 === _types.ERROR_CODE.DEVICE_NOT_FOUND ? 48 : _context3.t0 === _types.ERROR_CODE.INTERNAL_SERVER_ERROR ? 52 : 56;
419
+ _context3.next = _context3.t0 === _types2.ERROR_CODE.UNAUTHORIZED ? 7 : _context3.t0 === _types2.ERROR_CODE.FORBIDDEN ? 11 : _context3.t0 === _types2.ERROR_CODE.SERVICE_UNAVAILABLE ? 11 : _context3.t0 === _types2.ERROR_CODE.DEVICE_NOT_FOUND ? 48 : _context3.t0 === _types2.ERROR_CODE.INTERNAL_SERVER_ERROR ? 52 : 56;
395
420
  break;
396
421
  case 7:
397
422
  _Logger.default.warn("401 Unauthorized", loggerContext);
398
- updateCallErrorContext(loggerContext, _types.ERROR_TYPE.TOKEN_ERROR, 'User is unauthorized due to an expired token. Sign out, then sign back in.', correlationId, callError);
423
+ updateCallErrorContext(loggerContext, _types2.ERROR_TYPE.TOKEN_ERROR, 'User is unauthorized due to an expired token. Sign out, then sign back in.', correlationId, callError);
399
424
  emitterCb(callError);
400
425
  return _context3.abrupt("break", 57);
401
426
  case 11:
@@ -405,7 +430,7 @@ function _handleCallErrors() {
405
430
  break;
406
431
  }
407
432
  _Logger.default.warn('Error response has no body, throwing default error', loggerContext);
408
- updateCallErrorContext(loggerContext, err.statusCode === 403 ? _types.ERROR_TYPE.FORBIDDEN_ERROR : _types.ERROR_TYPE.SERVICE_UNAVAILABLE, err.statusCode === 403 ? 'An unauthorized action has been received. This action has been blocked. Please contact the administrator if this persists.' : 'An error occurred on the server while processing the request. Wait a moment and try again.', correlationId, callError);
433
+ updateCallErrorContext(loggerContext, err.statusCode === 403 ? _types2.ERROR_TYPE.FORBIDDEN_ERROR : _types2.ERROR_TYPE.SERVICE_UNAVAILABLE, err.statusCode === 403 ? 'An unauthorized action has been received. This action has been blocked. Please contact the administrator if this persists.' : 'An error occurred on the server while processing the request. Wait a moment and try again.', correlationId, callError);
409
434
  emitterCb(callError);
410
435
  return _context3.abrupt("return");
411
436
  case 17:
@@ -421,7 +446,7 @@ function _handleCallErrors() {
421
446
  /* Handling various Error codes */
422
447
  code = Number(errorBody.errorCode);
423
448
  _context3.t1 = code;
424
- _context3.next = _context3.t1 === _types.CALL_ERROR_CODE.INVALID_STATUS_UPDATE ? 26 : _context3.t1 === _types.CALL_ERROR_CODE.DEVICE_NOT_REGISTERED ? 28 : _context3.t1 === _types.CALL_ERROR_CODE.CALL_NOT_FOUND ? 30 : _context3.t1 === _types.CALL_ERROR_CODE.ERROR_PROCESSING ? 32 : _context3.t1 === _types.CALL_ERROR_CODE.USER_BUSY ? 34 : _context3.t1 === _types.CALL_ERROR_CODE.PARSING_ERROR ? 36 : _context3.t1 === _types.CALL_ERROR_CODE.NOT_ACCEPTABLE ? 38 : _context3.t1 === _types.CALL_ERROR_CODE.CALL_REJECTED ? 40 : _context3.t1 === _types.CALL_ERROR_CODE.NOT_AVAILABLE ? 42 : 44;
449
+ _context3.next = _context3.t1 === _types2.CALL_ERROR_CODE.INVALID_STATUS_UPDATE ? 26 : _context3.t1 === _types2.CALL_ERROR_CODE.DEVICE_NOT_REGISTERED ? 28 : _context3.t1 === _types2.CALL_ERROR_CODE.CALL_NOT_FOUND ? 30 : _context3.t1 === _types2.CALL_ERROR_CODE.ERROR_PROCESSING ? 32 : _context3.t1 === _types2.CALL_ERROR_CODE.USER_BUSY ? 34 : _context3.t1 === _types2.CALL_ERROR_CODE.PARSING_ERROR ? 36 : _context3.t1 === _types2.CALL_ERROR_CODE.NOT_ACCEPTABLE ? 38 : _context3.t1 === _types2.CALL_ERROR_CODE.CALL_REJECTED ? 40 : _context3.t1 === _types2.CALL_ERROR_CODE.NOT_AVAILABLE ? 42 : 44;
425
450
  break;
426
451
  case 26:
427
452
  message = 'An invalid status update has been received for the call. Wait a moment and try again.';
@@ -455,17 +480,17 @@ function _handleCallErrors() {
455
480
  case 45:
456
481
  /* We just emit the errors to the app */
457
482
 
458
- updateCallErrorContext(loggerContext, err.statusCode === 403 ? _types.ERROR_TYPE.FORBIDDEN_ERROR : _types.ERROR_TYPE.SERVICE_UNAVAILABLE, message, correlationId, callError);
483
+ updateCallErrorContext(loggerContext, err.statusCode === 403 ? _types2.ERROR_TYPE.FORBIDDEN_ERROR : _types2.ERROR_TYPE.SERVICE_UNAVAILABLE, message, correlationId, callError);
459
484
  emitterCb(callError);
460
485
  return _context3.abrupt("break", 57);
461
486
  case 48:
462
487
  _Logger.default.warn("404 Call Not Found", loggerContext);
463
- updateCallErrorContext(loggerContext, _types.ERROR_TYPE.NOT_FOUND, 'Call is no longer active. Wait a moment and try again.', correlationId, callError);
488
+ updateCallErrorContext(loggerContext, _types2.ERROR_TYPE.NOT_FOUND, 'Call is no longer active. Wait a moment and try again.', correlationId, callError);
464
489
  emitterCb(callError);
465
490
  return _context3.abrupt("break", 57);
466
491
  case 52:
467
492
  _Logger.default.warn("500 Internal Server Error", loggerContext);
468
- updateCallErrorContext(loggerContext, _types.ERROR_TYPE.SERVER_ERROR, 'An unknown error occurred in the call. Wait a moment and try again.', correlationId, callError);
493
+ updateCallErrorContext(loggerContext, _types2.ERROR_TYPE.SERVER_ERROR, 'An unknown error occurred in the call. Wait a moment and try again.', correlationId, callError);
469
494
  emitterCb(callError);
470
495
  return _context3.abrupt("break", 57);
471
496
  case 56:
@@ -478,7 +503,7 @@ function _handleCallErrors() {
478
503
  }));
479
504
  return _handleCallErrors.apply(this, arguments);
480
505
  }
481
- function serviceErrorCodeHandler(_x15, _x16) {
506
+ function serviceErrorCodeHandler(_x16, _x17) {
482
507
  return _serviceErrorCodeHandler.apply(this, arguments);
483
508
  }
484
509
  /**
@@ -494,7 +519,7 @@ function _serviceErrorCodeHandler() {
494
519
  errorCode = Number(err.statusCode);
495
520
  failureMessage = 'FAILURE';
496
521
  _context4.t0 = errorCode;
497
- _context4.next = _context4.t0 === _types.ERROR_CODE.BAD_REQUEST ? 5 : _context4.t0 === _types.ERROR_CODE.UNAUTHORIZED ? 8 : _context4.t0 === _types.ERROR_CODE.FORBIDDEN ? 11 : _context4.t0 === _types.ERROR_CODE.DEVICE_NOT_FOUND ? 14 : _context4.t0 === _types.ERROR_CODE.REQUEST_TIMEOUT ? 17 : _context4.t0 === _types.ERROR_CODE.NOT_IMPLEMENTED ? 20 : _context4.t0 === _types.ERROR_CODE.INTERNAL_SERVER_ERROR ? 23 : _context4.t0 === _types.ERROR_CODE.SERVICE_UNAVAILABLE ? 26 : 29;
522
+ _context4.next = _context4.t0 === _types2.ERROR_CODE.BAD_REQUEST ? 5 : _context4.t0 === _types2.ERROR_CODE.UNAUTHORIZED ? 8 : _context4.t0 === _types2.ERROR_CODE.FORBIDDEN ? 11 : _context4.t0 === _types2.ERROR_CODE.DEVICE_NOT_FOUND ? 14 : _context4.t0 === _types2.ERROR_CODE.REQUEST_TIMEOUT ? 17 : _context4.t0 === _types2.ERROR_CODE.NOT_IMPLEMENTED ? 20 : _context4.t0 === _types2.ERROR_CODE.INTERNAL_SERVER_ERROR ? 23 : _context4.t0 === _types2.ERROR_CODE.SERVICE_UNAVAILABLE ? 26 : 29;
498
523
  break;
499
524
  case 5:
500
525
  _Logger.default.warn("400 Bad request", loggerContext);
@@ -826,17 +851,17 @@ function getCallingBackEnd(webex) {
826
851
  if (webex.internal.device.callingBehavior === _constants2.NATIVE_WEBEX_TEAMS_CALLING) {
827
852
  for (var i = 0; i < entModels.length; i += 1) {
828
853
  if (entModels[i][_constants2.VALUES][_constants2.KEY] === _constants2.ENTITLEMENT_BASIC || entModels[i][_constants2.VALUES][_constants2.KEY] === _constants2.ENTITLEMENT_STANDARD) {
829
- callingBackend = _types2.CALLING_BACKEND.WXC;
854
+ callingBackend = _types3.CALLING_BACKEND.WXC;
830
855
  break;
831
856
  } else if (entModels[i][_constants2.VALUES][_constants2.KEY] === _constants2.ENTITLEMENT_BROADWORKS_CONN) {
832
- callingBackend = _types2.CALLING_BACKEND.BWRKS;
857
+ callingBackend = _types3.CALLING_BACKEND.BWRKS;
833
858
  break;
834
859
  }
835
860
  }
836
861
  } else if (webex.internal.device.callingBehavior === _constants2.NATIVE_SIP_CALL_TO_UCM) {
837
- callingBackend = _types2.CALLING_BACKEND.UCM;
862
+ callingBackend = _types3.CALLING_BACKEND.UCM;
838
863
  } else {
839
- callingBackend = _types2.CALLING_BACKEND.INVALID;
864
+ callingBackend = _types3.CALLING_BACKEND.INVALID;
840
865
  }
841
866
  return callingBackend;
842
867
  }
@@ -849,7 +874,7 @@ function getCallingBackEnd(webex) {
849
874
  * @param callingBackend -.
850
875
  * @returns Promise.
851
876
  */
852
- function getXsiActionEndpoint(_x17, _x18, _x19) {
877
+ function getXsiActionEndpoint(_x18, _x19, _x20) {
853
878
  return _getXsiActionEndpoint.apply(this, arguments);
854
879
  }
855
880
  /**
@@ -867,13 +892,13 @@ function _getXsiActionEndpoint() {
867
892
  case 0:
868
893
  _context5.prev = 0;
869
894
  _context5.t0 = callingBackend;
870
- _context5.next = _context5.t0 === _types2.CALLING_BACKEND.WXC ? 4 : _context5.t0 === _types2.CALLING_BACKEND.BWRKS ? 10 : 18;
895
+ _context5.next = _context5.t0 === _types3.CALLING_BACKEND.WXC ? 4 : _context5.t0 === _types3.CALLING_BACKEND.BWRKS ? 10 : 18;
871
896
  break;
872
897
  case 4:
873
898
  _context5.next = 6;
874
899
  return webex.request({
875
900
  uri: "".concat(webex.internal.services._serviceUrls.hydra, "/").concat(_constants2.XSI_ACTION_ENDPOINT_ORG_URL_PARAM),
876
- method: _types2.HTTP_METHODS.GET
901
+ method: _types3.HTTP_METHODS.GET
877
902
  });
878
903
  case 6:
879
904
  userIdResponse = _context5.sent;
@@ -884,7 +909,7 @@ function _getXsiActionEndpoint() {
884
909
  _context5.next = 12;
885
910
  return webex.request({
886
911
  uri: "".concat(webex.internal.services._serviceUrls.wdm, "/").concat(_constants2.DEVICES),
887
- method: _types2.HTTP_METHODS.GET
912
+ method: _types3.HTTP_METHODS.GET
888
913
  });
889
914
  case 12:
890
915
  bwTokenResponse = _context5.sent;
@@ -918,7 +943,7 @@ function _getXsiActionEndpoint() {
918
943
  }
919
944
  function getVgActionEndpoint(webex, callingBackend) {
920
945
  try {
921
- if (callingBackend && callingBackend === _types2.CALLING_BACKEND.UCM) {
946
+ if (callingBackend && callingBackend === _types3.CALLING_BACKEND.UCM) {
922
947
  return webex.internal.services._serviceUrls['ucmgmt-gateway'];
923
948
  }
924
949
  throw new Error('Calling backend is not identified, exiting....');
@@ -937,11 +962,11 @@ function getVgActionEndpoint(webex, callingBackend) {
937
962
  */
938
963
  function getSortedVoicemailList(voiceMessageList, sortOrder) {
939
964
  /* istanbul ignore else */
940
- if (sortOrder === _types2.SORT.DESC) {
965
+ if (sortOrder === _types3.SORT.DESC) {
941
966
  voiceMessageList.sort(function (voiceMail, nextVoiceMail) {
942
967
  return nextVoiceMail[_constants2.TIME][_constants2.PLACEHOLDER_KEY] - voiceMail[_constants2.TIME][_constants2.PLACEHOLDER_KEY];
943
968
  });
944
- } else if (sortOrder === _types2.SORT.ASC) {
969
+ } else if (sortOrder === _types3.SORT.ASC) {
945
970
  voiceMessageList.sort(function (voiceMail, nextVoiceMail) {
946
971
  return voiceMail[_constants2.TIME][_constants2.PLACEHOLDER_KEY] - nextVoiceMail[_constants2.TIME][_constants2.PLACEHOLDER_KEY];
947
972
  });
@@ -955,7 +980,7 @@ function getSortedVoicemailList(voiceMessageList, sortOrder) {
955
980
  * @param filter - A filter for the query.
956
981
  * @returns - Promise.
957
982
  */
958
- function scimQuery(_x20) {
983
+ function scimQuery(_x21) {
959
984
  return _scimQuery.apply(this, arguments);
960
985
  }
961
986
  /**
@@ -981,7 +1006,7 @@ function _scimQuery() {
981
1006
  query = scimUrl + encodeURIComponent(filter);
982
1007
  return _context6.abrupt("return", webex.request({
983
1008
  uri: query,
984
- method: _types2.HTTP_METHODS.GET,
1009
+ method: _types3.HTTP_METHODS.GET,
985
1010
  headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants.CISCO_DEVICE_URL, webex.internal.device.url), _constants.SPARK_USER_AGENT, _constants.CALLING_USER_AGENT)
986
1011
  }));
987
1012
  case 8:
@@ -992,7 +1017,7 @@ function _scimQuery() {
992
1017
  }));
993
1018
  return _scimQuery.apply(this, arguments);
994
1019
  }
995
- function resolveCallerIdDisplay(_x21) {
1020
+ function resolveCallerIdDisplay(_x22) {
996
1021
  return _resolveCallerIdDisplay.apply(this, arguments);
997
1022
  }
998
1023
  /**
@@ -1069,7 +1094,7 @@ function _resolveCallerIdDisplay() {
1069
1094
  }));
1070
1095
  return _resolveCallerIdDisplay.apply(this, arguments);
1071
1096
  }
1072
- function resolveCallerIdByName(_x22) {
1097
+ function resolveCallerIdByName(_x23) {
1073
1098
  return _resolveCallerIdByName.apply(this, arguments);
1074
1099
  }
1075
1100
  /**
@@ -1133,7 +1158,7 @@ function _resolveCallerIdByName() {
1133
1158
  }));
1134
1159
  return _resolveCallerIdByName.apply(this, arguments);
1135
1160
  }
1136
- function resolveContact(_x23) {
1161
+ function resolveContact(_x24) {
1137
1162
  return _resolveContact.apply(this, arguments);
1138
1163
  }
1139
1164
  /**
@@ -1221,7 +1246,7 @@ function inferIdFromUuid(id, decodeType) {
1221
1246
  * @returns True if validation is successful else false.
1222
1247
  */
1223
1248
  function isValidServiceIndicator(indicator) {
1224
- return (0, _values.default)(_types2.ServiceIndicator).some(function (v) {
1249
+ return (0, _values.default)(_types3.ServiceIndicator).some(function (v) {
1225
1250
  return v === indicator;
1226
1251
  });
1227
1252
  }
@@ -1242,7 +1267,7 @@ function isValidServiceDomain(serviceData) {
1242
1267
  var regexp = /^[a-z0-9]+([-.]{1}[a-z0-9]+)*\.[a-z]{2,6}$/i;
1243
1268
  var domain = serviceData.domain;
1244
1269
  if (!domain) {
1245
- return serviceData.indicator === _types2.ServiceIndicator.CALLING || serviceData.indicator === _types2.ServiceIndicator.GUEST_CALLING;
1270
+ return serviceData.indicator === _types3.ServiceIndicator.CALLING || serviceData.indicator === _types3.ServiceIndicator.GUEST_CALLING;
1246
1271
  }
1247
1272
  return regexp.test(domain);
1248
1273
  }
@@ -1255,7 +1280,7 @@ function isValidServiceDomain(serviceData) {
1255
1280
  * @param serviceData - Input service data to be validated.
1256
1281
  */
1257
1282
  function validateServiceData(serviceData) {
1258
- var allowedValues = (0, _values.default)(_types2.ServiceIndicator);
1283
+ var allowedValues = (0, _values.default)(_types3.ServiceIndicator);
1259
1284
  var formattedValues = allowedValues.join(', ').replace(/,([^,]*)$/, ' and$1');
1260
1285
  if (!isValidServiceIndicator(serviceData.indicator)) {
1261
1286
  throw new Error("Invalid service indicator, Allowed values are: ".concat(formattedValues));
@@ -1322,40 +1347,78 @@ function modifySdpForIPv4(sdp) {
1322
1347
  /**
1323
1348
  * Uploads logs to backend.
1324
1349
  *
1325
- * @param webex - Webex object to get service urls.
1326
- * @param data - Data to be uploaded.
1350
+ * @param metaData - Metadata to be uploaded.
1351
+ * @param throwError - Whether to throw exception on failure (default: false).
1352
+ * @returns Promise containing upload response if successful.
1327
1353
  */
1328
1354
  function uploadLogs() {
1329
1355
  return _uploadLogs.apply(this, arguments);
1330
1356
  }
1331
1357
  function _uploadLogs() {
1332
1358
  _uploadLogs = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() {
1333
- var data,
1334
- _webex,
1359
+ var metaData,
1360
+ throwError,
1361
+ webex,
1362
+ feedbackId,
1363
+ response,
1364
+ errorLog,
1335
1365
  _args10 = arguments;
1336
1366
  return _regenerator.default.wrap(function _callee10$(_context10) {
1337
1367
  while (1) switch (_context10.prev = _context10.next) {
1338
1368
  case 0:
1339
- data = _args10.length > 0 && _args10[0] !== undefined ? _args10[0] : {};
1340
- _context10.prev = 1;
1341
- _webex = _SDKConnector.default.getWebex();
1342
- _context10.next = 5;
1343
- return _webex.internal.support.submitLogs(data);
1344
- case 5:
1345
- _context10.next = 10;
1346
- break;
1369
+ metaData = _args10.length > 0 && _args10[0] !== undefined ? _args10[0] : {};
1370
+ throwError = _args10.length > 1 && _args10[1] !== undefined ? _args10[1] : false;
1371
+ webex = _SDKConnector.default.getWebex();
1372
+ feedbackId = crypto.randomUUID();
1373
+ _context10.prev = 4;
1374
+ _context10.next = 7;
1375
+ return webex.internal.support.submitLogs(_objectSpread(_objectSpread({}, metaData), {}, {
1376
+ feedbackId: feedbackId
1377
+ }), undefined,
1378
+ // we dont send logs but take from webex logger
1379
+ {
1380
+ type: 'diff'
1381
+ } // this is to take the diff logs from previous upload
1382
+ );
1347
1383
  case 7:
1348
- _context10.prev = 7;
1349
- _context10.t0 = _context10["catch"](1);
1350
- _Logger.default.error(_context10.t0, {
1384
+ response = _context10.sent;
1385
+ _Logger.default.info("Logs uploaded successfully with feedbackId: ".concat(feedbackId), {
1351
1386
  file: _constants.UTILS_FILE,
1352
1387
  method: 'uploadLogs'
1353
1388
  });
1354
- case 10:
1389
+ (0, _Metrics.getMetricManager)().submitUploadLogsMetric(_types.METRIC_EVENT.UPLOAD_LOGS_SUCCESS, _types.UPLOAD_LOGS_ACTION, _types.METRIC_TYPE.BEHAVIORAL, response === null || response === void 0 ? void 0 : response.trackingid, feedbackId, metaData === null || metaData === void 0 ? void 0 : metaData.correlationId);
1390
+ return _context10.abrupt("return", _objectSpread(_objectSpread(_objectSpread(_objectSpread({
1391
+ trackingid: response.trackingid
1392
+ }, response.url ? {
1393
+ url: response.url
1394
+ } : {}), response.userId ? {
1395
+ userId: response.userId
1396
+ } : {}), response.correlationId ? {
1397
+ correlationId: response.correlationId
1398
+ } : {}), {}, {
1399
+ feedbackId: feedbackId
1400
+ }));
1401
+ case 13:
1402
+ _context10.prev = 13;
1403
+ _context10.t0 = _context10["catch"](4);
1404
+ errorLog = new Error("Failed to upload Logs ".concat(_context10.t0));
1405
+ _Logger.default.error(errorLog, {
1406
+ file: _constants.UTILS_FILE,
1407
+ method: 'uploadLogs'
1408
+ });
1409
+ (0, _Metrics.getMetricManager)().submitUploadLogsMetric(_types.METRIC_EVENT.UPLOAD_LOGS_FAILED, _types.UPLOAD_LOGS_ACTION, _types.METRIC_TYPE.BEHAVIORAL, feedbackId, metaData === null || metaData === void 0 ? void 0 : metaData.correlationId, errorLog.message);
1410
+ if (!throwError) {
1411
+ _context10.next = 20;
1412
+ break;
1413
+ }
1414
+ throw _context10.t0;
1415
+ case 20:
1416
+ return _context10.abrupt("return", undefined);
1417
+ case 21:
1355
1418
  case "end":
1356
1419
  return _context10.stop();
1357
1420
  }
1358
- }, _callee10, null, [[1, 7]]);
1421
+ }, _callee10, null, [[4, 13]]);
1359
1422
  }));
1360
1423
  return _uploadLogs.apply(this, arguments);
1361
1424
  }