@webex/calling 3.8.0 → 3.8.1-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) 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 +220 -159
  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 +105 -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 +359 -297
  38. package/dist/CallingClient/registration/register.js.map +1 -1
  39. package/dist/CallingClient/registration/register.test.js +561 -163
  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/Errors/types.js +2 -0
  49. package/dist/Errors/types.js.map +1 -1
  50. package/dist/Events/impl/index.js +1 -1
  51. package/dist/Events/impl/index.js.map +1 -1
  52. package/dist/Metrics/index.js +102 -41
  53. package/dist/Metrics/index.js.map +1 -1
  54. package/dist/Metrics/index.test.js +10 -4
  55. package/dist/Metrics/index.test.js.map +1 -1
  56. package/dist/Metrics/types.js +4 -1
  57. package/dist/Metrics/types.js.map +1 -1
  58. package/dist/SDKConnector/types.js.map +1 -1
  59. package/dist/Voicemail/BroadworksBackendConnector.js +154 -91
  60. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  61. package/dist/Voicemail/BroadworksBackendConnector.test.js +99 -19
  62. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  63. package/dist/Voicemail/UcmBackendConnector.js +105 -54
  64. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  65. package/dist/Voicemail/UcmBackendConnector.test.js +127 -17
  66. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
  67. package/dist/Voicemail/Voicemail.js +198 -79
  68. package/dist/Voicemail/Voicemail.js.map +1 -1
  69. package/dist/Voicemail/Voicemail.test.js +188 -23
  70. package/dist/Voicemail/Voicemail.test.js.map +1 -1
  71. package/dist/Voicemail/WxCallBackendConnector.js +277 -161
  72. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  73. package/dist/Voicemail/WxCallBackendConnector.test.js +268 -10
  74. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  75. package/dist/Voicemail/constants.js +25 -1
  76. package/dist/Voicemail/constants.js.map +1 -1
  77. package/dist/Voicemail/types.js.map +1 -1
  78. package/dist/common/Utils.js +168 -104
  79. package/dist/common/Utils.js.map +1 -1
  80. package/dist/common/Utils.test.js +199 -35
  81. package/dist/common/Utils.test.js.map +1 -1
  82. package/dist/common/constants.js +2 -1
  83. package/dist/common/constants.js.map +1 -1
  84. package/dist/common/testUtil.js +3 -0
  85. package/dist/common/testUtil.js.map +1 -1
  86. package/dist/common/types.js.map +1 -1
  87. package/dist/index.js +12 -0
  88. package/dist/index.js.map +1 -1
  89. package/dist/module/CallHistory/CallHistory.js +32 -13
  90. package/dist/module/CallHistory/constants.js +6 -0
  91. package/dist/module/CallSettings/CallSettings.js +36 -3
  92. package/dist/module/CallSettings/UcmBackendConnector.js +50 -5
  93. package/dist/module/CallSettings/WxCallBackendConnector.js +54 -18
  94. package/dist/module/CallSettings/constants.js +12 -0
  95. package/dist/module/CallingClient/CallingClient.js +54 -16
  96. package/dist/module/CallingClient/calling/call.js +172 -121
  97. package/dist/module/CallingClient/calling/callManager.js +51 -26
  98. package/dist/module/CallingClient/constants.js +102 -2
  99. package/dist/module/CallingClient/line/index.js +37 -8
  100. package/dist/module/CallingClient/registration/register.js +103 -64
  101. package/dist/module/Contacts/ContactsClient.js +65 -21
  102. package/dist/module/Contacts/constants.js +10 -0
  103. package/dist/module/Errors/types.js +2 -0
  104. package/dist/module/Events/impl/index.js +1 -1
  105. package/dist/module/Metrics/index.js +57 -2
  106. package/dist/module/Metrics/types.js +3 -0
  107. package/dist/module/Voicemail/BroadworksBackendConnector.js +66 -17
  108. package/dist/module/Voicemail/UcmBackendConnector.js +51 -11
  109. package/dist/module/Voicemail/Voicemail.js +109 -9
  110. package/dist/module/Voicemail/WxCallBackendConnector.js +67 -18
  111. package/dist/module/Voicemail/constants.js +21 -0
  112. package/dist/module/common/Utils.js +51 -12
  113. package/dist/module/common/constants.js +1 -0
  114. package/dist/module/common/testUtil.js +3 -0
  115. package/dist/module/index.js +1 -0
  116. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  117. package/dist/types/CallHistory/constants.d.ts +6 -0
  118. package/dist/types/CallHistory/constants.d.ts.map +1 -1
  119. package/dist/types/CallSettings/CallSettings.d.ts.map +1 -1
  120. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  121. package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
  122. package/dist/types/CallSettings/constants.d.ts +12 -0
  123. package/dist/types/CallSettings/constants.d.ts.map +1 -1
  124. package/dist/types/CallingClient/CallingClient.d.ts +2 -3
  125. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  126. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  127. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  128. package/dist/types/CallingClient/constants.d.ts +102 -2
  129. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  130. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  131. package/dist/types/CallingClient/registration/register.d.ts +3 -1
  132. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  133. package/dist/types/CallingClient/registration/types.d.ts +1 -0
  134. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  135. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  136. package/dist/types/Contacts/constants.d.ts +10 -0
  137. package/dist/types/Contacts/constants.d.ts.map +1 -1
  138. package/dist/types/Errors/types.d.ts +2 -0
  139. package/dist/types/Errors/types.d.ts.map +1 -1
  140. package/dist/types/Metrics/index.d.ts +1 -1
  141. package/dist/types/Metrics/index.d.ts.map +1 -1
  142. package/dist/types/Metrics/types.d.ts +7 -2
  143. package/dist/types/Metrics/types.d.ts.map +1 -1
  144. package/dist/types/SDKConnector/types.d.ts +11 -2
  145. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  146. package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
  147. package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
  148. package/dist/types/Voicemail/Voicemail.d.ts +1 -1
  149. package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
  150. package/dist/types/Voicemail/WxCallBackendConnector.d.ts +3 -1
  151. package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
  152. package/dist/types/Voicemail/constants.d.ts +21 -0
  153. package/dist/types/Voicemail/constants.d.ts.map +1 -1
  154. package/dist/types/Voicemail/types.d.ts +1 -1
  155. package/dist/types/Voicemail/types.d.ts.map +1 -1
  156. package/dist/types/common/Utils.d.ts +4 -4
  157. package/dist/types/common/Utils.d.ts.map +1 -1
  158. package/dist/types/common/constants.d.ts +1 -0
  159. package/dist/types/common/constants.d.ts.map +1 -1
  160. package/dist/types/common/testUtil.d.ts +3 -0
  161. package/dist/types/common/testUtil.d.ts.map +1 -1
  162. package/dist/types/common/types.d.ts +12 -0
  163. package/dist/types/common/types.d.ts.map +1 -1
  164. package/dist/types/index.d.ts +2 -0
  165. package/dist/types/index.d.ts.map +1 -1
  166. package/package.json +4 -3
@@ -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,112 @@ 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 ? 27 : _context.t0 === _types2.ERROR_CODE.SERVICE_UNAVAILABLE ? 31 : _context.t0 === _types2.ERROR_CODE.FORBIDDEN ? 35 : 70;
235
243
  break;
236
244
  case 7:
245
+ finalError = true;
246
+ _Logger.default.warn("400 Bad Request", loggerContext);
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
+ emitterCb(lineError, finalError);
249
+ return _context.abrupt("break", 73);
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", 73);
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", 73);
263
+ case 22:
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);
266
+ caller = loggerContext.method || 'handleErrors';
267
+ if (retry429Cb && err.headers) {
268
+ retryAfter = Number(err.headers['retry-after']);
269
+ retry429Cb(retryAfter, caller);
270
+ }
271
+ return _context.abrupt("break", 73);
272
+ case 27:
244
273
  _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);
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);
246
275
  emitterCb(lineError, finalError);
247
- return _context.abrupt("break", 63);
248
- case 16:
276
+ return _context.abrupt("break", 73);
277
+ case 31:
249
278
  _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);
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);
251
280
  emitterCb(lineError, finalError);
252
- return _context.abrupt("break", 63);
253
- case 20:
281
+ return _context.abrupt("break", 73);
282
+ case 35:
254
283
  _Logger.default.warn("403 Forbidden", loggerContext);
255
284
  errorBody = err.body;
256
285
  if (errorBody) {
257
- _context.next = 27;
286
+ _context.next = 42;
258
287
  break;
259
288
  }
260
289
  _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);
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);
262
291
  emitterCb(lineError, finalError);
263
292
  return _context.abrupt("return", finalError);
264
- case 27:
293
+ case 42:
265
294
  code = Number(errorBody.errorCode);
266
295
  _Logger.default.warn("Error code found : ".concat(code), loggerContext);
267
296
  _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;
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;
269
298
  break;
270
- case 32:
299
+ case 47:
271
300
  errorMessage = 'User device limit exceeded';
272
301
  _Logger.default.warn(errorMessage, loggerContext);
273
302
  if (!restoreRegCb) {
274
- _context.next = 38;
303
+ _context.next = 53;
275
304
  break;
276
305
  }
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:
306
+ _caller = loggerContext.method || 'handleErrors';
307
+ _context.next = 53;
308
+ return restoreRegCb(errorBody, _caller);
309
+ case 53:
310
+ return _context.abrupt("break", 69);
311
+ case 54:
283
312
  _errorMessage = 'User is not configured for WebRTC calling. Please contact the administrator to resolve this issue.';
284
313
  finalError = true;
285
- updateLineErrorContext(loggerContext, _types.ERROR_TYPE.FORBIDDEN_ERROR, _errorMessage, _types2.RegistrationStatus.INACTIVE, lineError);
314
+ updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.FORBIDDEN_ERROR, _errorMessage, _types3.RegistrationStatus.INACTIVE, lineError);
286
315
  _Logger.default.warn(_errorMessage, loggerContext);
287
316
  emitterCb(lineError, true);
288
- return _context.abrupt("break", 54);
289
- case 45:
317
+ return _context.abrupt("break", 69);
318
+ case 60:
290
319
  _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);
320
+ updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.FORBIDDEN_ERROR, _errorMessage2, _types3.RegistrationStatus.INACTIVE, lineError);
292
321
  _Logger.default.warn(_errorMessage2, loggerContext);
293
322
  emitterCb(lineError, finalError);
294
- return _context.abrupt("break", 54);
295
- case 50:
323
+ return _context.abrupt("break", 69);
324
+ case 65:
296
325
  _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);
326
+ updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.FORBIDDEN_ERROR, _errorMessage3, _types3.RegistrationStatus.INACTIVE, lineError);
298
327
  _Logger.default.warn(_errorMessage3, loggerContext);
299
328
  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);
329
+ case 69:
330
+ return _context.abrupt("break", 73);
331
+ case 70:
332
+ updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.DEFAULT, 'Unknown error', _types3.RegistrationStatus.INACTIVE, lineError);
310
333
  _Logger.default.warn("Unknown Error", loggerContext);
311
334
  emitterCb(lineError, finalError);
312
- case 63:
335
+ case 73:
313
336
  return _context.abrupt("return", finalError);
314
- case 64:
337
+ case 74:
315
338
  case "end":
316
339
  return _context.stop();
317
340
  }
@@ -319,7 +342,7 @@ function _handleRegistrationErrors() {
319
342
  }));
320
343
  return _handleRegistrationErrors.apply(this, arguments);
321
344
  }
322
- function handleCallingClientErrors(_x5, _x6, _x7) {
345
+ function handleCallingClientErrors(_x6, _x7, _x8) {
323
346
  return _handleCallingClientErrors.apply(this, arguments);
324
347
  }
325
348
  /**
@@ -340,25 +363,28 @@ function _handleCallingClientErrors() {
340
363
  return _regenerator.default.wrap(function _callee2$(_context2) {
341
364
  while (1) switch (_context2.prev = _context2.next) {
342
365
  case 0:
343
- clientError = (0, _CallingDeviceError.createClientError)('', {}, _types.ERROR_TYPE.DEFAULT, _types2.RegistrationStatus.INACTIVE);
366
+ clientError = (0, _CallingDeviceError.createClientError)('', {}, _types2.ERROR_TYPE.DEFAULT, _types3.RegistrationStatus.INACTIVE);
344
367
  errorCode = Number(err.statusCode);
345
368
  finalError = false;
346
369
  _Logger.default.warn("Status code: -> ".concat(errorCode), loggerContext);
347
370
  _context2.t0 = errorCode;
348
- _context2.next = _context2.t0 === _types.ERROR_CODE.INTERNAL_SERVER_ERROR ? 7 : 11;
371
+ _context2.next = _context2.t0 === _types2.ERROR_CODE.INTERNAL_SERVER_ERROR ? 7 : 11;
349
372
  break;
350
373
  case 7:
351
374
  _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);
375
+ updateErrorContext(loggerContext, _types2.ERROR_TYPE.SERVER_ERROR, 'An unknown error occurred while placing the request. Wait a moment and try again.', clientError);
353
376
  emitterCb(clientError, finalError);
354
377
  return _context2.abrupt("break", 14);
355
378
  case 11:
356
- updateErrorContext(loggerContext, _types.ERROR_TYPE.DEFAULT, 'Unknown error', clientError);
379
+ updateErrorContext(loggerContext, _types2.ERROR_TYPE.DEFAULT, 'Unknown error', clientError);
357
380
  _Logger.default.warn("Unknown Error", loggerContext);
358
381
  emitterCb(clientError, finalError);
359
382
  case 14:
383
+ _context2.next = 16;
384
+ return uploadLogs();
385
+ case 16:
360
386
  return _context2.abrupt("return", finalError);
361
- case 15:
387
+ case 17:
362
388
  case "end":
363
389
  return _context2.stop();
364
390
  }
@@ -366,7 +392,7 @@ function _handleCallingClientErrors() {
366
392
  }));
367
393
  return _handleCallingClientErrors.apply(this, arguments);
368
394
  }
369
- function handleCallErrors(_x8, _x9, _x10, _x11, _x12, _x13, _x14) {
395
+ function handleCallErrors(_x9, _x10, _x11, _x12, _x13, _x14, _x15) {
370
396
  return _handleCallErrors.apply(this, arguments);
371
397
  }
372
398
  /**
@@ -387,15 +413,15 @@ function _handleCallErrors() {
387
413
  file: file,
388
414
  method: caller
389
415
  };
390
- callError = (0, _CallError.createCallError)('', loggerContext, _types.ERROR_TYPE.DEFAULT, '', errorLayer);
416
+ callError = (0, _CallError.createCallError)('', loggerContext, _types2.ERROR_TYPE.DEFAULT, '', errorLayer);
391
417
  errorCode = Number(err.statusCode);
392
418
  _Logger.default.warn("Status code: ->".concat(errorCode), loggerContext);
393
419
  _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;
420
+ _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
421
  break;
396
422
  case 7:
397
423
  _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);
424
+ updateCallErrorContext(loggerContext, _types2.ERROR_TYPE.TOKEN_ERROR, 'User is unauthorized due to an expired token. Sign out, then sign back in.', correlationId, callError);
399
425
  emitterCb(callError);
400
426
  return _context3.abrupt("break", 57);
401
427
  case 11:
@@ -405,7 +431,7 @@ function _handleCallErrors() {
405
431
  break;
406
432
  }
407
433
  _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);
434
+ 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
435
  emitterCb(callError);
410
436
  return _context3.abrupt("return");
411
437
  case 17:
@@ -421,7 +447,7 @@ function _handleCallErrors() {
421
447
  /* Handling various Error codes */
422
448
  code = Number(errorBody.errorCode);
423
449
  _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;
450
+ _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
451
  break;
426
452
  case 26:
427
453
  message = 'An invalid status update has been received for the call. Wait a moment and try again.';
@@ -455,17 +481,17 @@ function _handleCallErrors() {
455
481
  case 45:
456
482
  /* We just emit the errors to the app */
457
483
 
458
- updateCallErrorContext(loggerContext, err.statusCode === 403 ? _types.ERROR_TYPE.FORBIDDEN_ERROR : _types.ERROR_TYPE.SERVICE_UNAVAILABLE, message, correlationId, callError);
484
+ updateCallErrorContext(loggerContext, err.statusCode === 403 ? _types2.ERROR_TYPE.FORBIDDEN_ERROR : _types2.ERROR_TYPE.SERVICE_UNAVAILABLE, message, correlationId, callError);
459
485
  emitterCb(callError);
460
486
  return _context3.abrupt("break", 57);
461
487
  case 48:
462
488
  _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);
489
+ updateCallErrorContext(loggerContext, _types2.ERROR_TYPE.NOT_FOUND, 'Call is no longer active. Wait a moment and try again.', correlationId, callError);
464
490
  emitterCb(callError);
465
491
  return _context3.abrupt("break", 57);
466
492
  case 52:
467
493
  _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);
494
+ updateCallErrorContext(loggerContext, _types2.ERROR_TYPE.SERVER_ERROR, 'An unknown error occurred in the call. Wait a moment and try again.', correlationId, callError);
469
495
  emitterCb(callError);
470
496
  return _context3.abrupt("break", 57);
471
497
  case 56:
@@ -478,7 +504,7 @@ function _handleCallErrors() {
478
504
  }));
479
505
  return _handleCallErrors.apply(this, arguments);
480
506
  }
481
- function serviceErrorCodeHandler(_x15, _x16) {
507
+ function serviceErrorCodeHandler(_x16, _x17) {
482
508
  return _serviceErrorCodeHandler.apply(this, arguments);
483
509
  }
484
510
  /**
@@ -494,7 +520,7 @@ function _serviceErrorCodeHandler() {
494
520
  errorCode = Number(err.statusCode);
495
521
  failureMessage = 'FAILURE';
496
522
  _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;
523
+ _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
524
  break;
499
525
  case 5:
500
526
  _Logger.default.warn("400 Bad request", loggerContext);
@@ -826,17 +852,17 @@ function getCallingBackEnd(webex) {
826
852
  if (webex.internal.device.callingBehavior === _constants2.NATIVE_WEBEX_TEAMS_CALLING) {
827
853
  for (var i = 0; i < entModels.length; i += 1) {
828
854
  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;
855
+ callingBackend = _types3.CALLING_BACKEND.WXC;
830
856
  break;
831
857
  } else if (entModels[i][_constants2.VALUES][_constants2.KEY] === _constants2.ENTITLEMENT_BROADWORKS_CONN) {
832
- callingBackend = _types2.CALLING_BACKEND.BWRKS;
858
+ callingBackend = _types3.CALLING_BACKEND.BWRKS;
833
859
  break;
834
860
  }
835
861
  }
836
862
  } else if (webex.internal.device.callingBehavior === _constants2.NATIVE_SIP_CALL_TO_UCM) {
837
- callingBackend = _types2.CALLING_BACKEND.UCM;
863
+ callingBackend = _types3.CALLING_BACKEND.UCM;
838
864
  } else {
839
- callingBackend = _types2.CALLING_BACKEND.INVALID;
865
+ callingBackend = _types3.CALLING_BACKEND.INVALID;
840
866
  }
841
867
  return callingBackend;
842
868
  }
@@ -849,7 +875,7 @@ function getCallingBackEnd(webex) {
849
875
  * @param callingBackend -.
850
876
  * @returns Promise.
851
877
  */
852
- function getXsiActionEndpoint(_x17, _x18, _x19) {
878
+ function getXsiActionEndpoint(_x18, _x19, _x20) {
853
879
  return _getXsiActionEndpoint.apply(this, arguments);
854
880
  }
855
881
  /**
@@ -867,13 +893,13 @@ function _getXsiActionEndpoint() {
867
893
  case 0:
868
894
  _context5.prev = 0;
869
895
  _context5.t0 = callingBackend;
870
- _context5.next = _context5.t0 === _types2.CALLING_BACKEND.WXC ? 4 : _context5.t0 === _types2.CALLING_BACKEND.BWRKS ? 10 : 18;
896
+ _context5.next = _context5.t0 === _types3.CALLING_BACKEND.WXC ? 4 : _context5.t0 === _types3.CALLING_BACKEND.BWRKS ? 10 : 18;
871
897
  break;
872
898
  case 4:
873
899
  _context5.next = 6;
874
900
  return webex.request({
875
901
  uri: "".concat(webex.internal.services._serviceUrls.hydra, "/").concat(_constants2.XSI_ACTION_ENDPOINT_ORG_URL_PARAM),
876
- method: _types2.HTTP_METHODS.GET
902
+ method: _types3.HTTP_METHODS.GET
877
903
  });
878
904
  case 6:
879
905
  userIdResponse = _context5.sent;
@@ -884,7 +910,7 @@ function _getXsiActionEndpoint() {
884
910
  _context5.next = 12;
885
911
  return webex.request({
886
912
  uri: "".concat(webex.internal.services._serviceUrls.wdm, "/").concat(_constants2.DEVICES),
887
- method: _types2.HTTP_METHODS.GET
913
+ method: _types3.HTTP_METHODS.GET
888
914
  });
889
915
  case 12:
890
916
  bwTokenResponse = _context5.sent;
@@ -918,7 +944,7 @@ function _getXsiActionEndpoint() {
918
944
  }
919
945
  function getVgActionEndpoint(webex, callingBackend) {
920
946
  try {
921
- if (callingBackend && callingBackend === _types2.CALLING_BACKEND.UCM) {
947
+ if (callingBackend && callingBackend === _types3.CALLING_BACKEND.UCM) {
922
948
  return webex.internal.services._serviceUrls['ucmgmt-gateway'];
923
949
  }
924
950
  throw new Error('Calling backend is not identified, exiting....');
@@ -937,11 +963,11 @@ function getVgActionEndpoint(webex, callingBackend) {
937
963
  */
938
964
  function getSortedVoicemailList(voiceMessageList, sortOrder) {
939
965
  /* istanbul ignore else */
940
- if (sortOrder === _types2.SORT.DESC) {
966
+ if (sortOrder === _types3.SORT.DESC) {
941
967
  voiceMessageList.sort(function (voiceMail, nextVoiceMail) {
942
968
  return nextVoiceMail[_constants2.TIME][_constants2.PLACEHOLDER_KEY] - voiceMail[_constants2.TIME][_constants2.PLACEHOLDER_KEY];
943
969
  });
944
- } else if (sortOrder === _types2.SORT.ASC) {
970
+ } else if (sortOrder === _types3.SORT.ASC) {
945
971
  voiceMessageList.sort(function (voiceMail, nextVoiceMail) {
946
972
  return voiceMail[_constants2.TIME][_constants2.PLACEHOLDER_KEY] - nextVoiceMail[_constants2.TIME][_constants2.PLACEHOLDER_KEY];
947
973
  });
@@ -955,7 +981,7 @@ function getSortedVoicemailList(voiceMessageList, sortOrder) {
955
981
  * @param filter - A filter for the query.
956
982
  * @returns - Promise.
957
983
  */
958
- function scimQuery(_x20) {
984
+ function scimQuery(_x21) {
959
985
  return _scimQuery.apply(this, arguments);
960
986
  }
961
987
  /**
@@ -981,7 +1007,7 @@ function _scimQuery() {
981
1007
  query = scimUrl + encodeURIComponent(filter);
982
1008
  return _context6.abrupt("return", webex.request({
983
1009
  uri: query,
984
- method: _types2.HTTP_METHODS.GET,
1010
+ method: _types3.HTTP_METHODS.GET,
985
1011
  headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants.CISCO_DEVICE_URL, webex.internal.device.url), _constants.SPARK_USER_AGENT, _constants.CALLING_USER_AGENT)
986
1012
  }));
987
1013
  case 8:
@@ -992,7 +1018,7 @@ function _scimQuery() {
992
1018
  }));
993
1019
  return _scimQuery.apply(this, arguments);
994
1020
  }
995
- function resolveCallerIdDisplay(_x21) {
1021
+ function resolveCallerIdDisplay(_x22) {
996
1022
  return _resolveCallerIdDisplay.apply(this, arguments);
997
1023
  }
998
1024
  /**
@@ -1069,7 +1095,7 @@ function _resolveCallerIdDisplay() {
1069
1095
  }));
1070
1096
  return _resolveCallerIdDisplay.apply(this, arguments);
1071
1097
  }
1072
- function resolveCallerIdByName(_x22) {
1098
+ function resolveCallerIdByName(_x23) {
1073
1099
  return _resolveCallerIdByName.apply(this, arguments);
1074
1100
  }
1075
1101
  /**
@@ -1133,7 +1159,7 @@ function _resolveCallerIdByName() {
1133
1159
  }));
1134
1160
  return _resolveCallerIdByName.apply(this, arguments);
1135
1161
  }
1136
- function resolveContact(_x23) {
1162
+ function resolveContact(_x24) {
1137
1163
  return _resolveContact.apply(this, arguments);
1138
1164
  }
1139
1165
  /**
@@ -1221,7 +1247,7 @@ function inferIdFromUuid(id, decodeType) {
1221
1247
  * @returns True if validation is successful else false.
1222
1248
  */
1223
1249
  function isValidServiceIndicator(indicator) {
1224
- return (0, _values.default)(_types2.ServiceIndicator).some(function (v) {
1250
+ return (0, _values.default)(_types3.ServiceIndicator).some(function (v) {
1225
1251
  return v === indicator;
1226
1252
  });
1227
1253
  }
@@ -1242,7 +1268,7 @@ function isValidServiceDomain(serviceData) {
1242
1268
  var regexp = /^[a-z0-9]+([-.]{1}[a-z0-9]+)*\.[a-z]{2,6}$/i;
1243
1269
  var domain = serviceData.domain;
1244
1270
  if (!domain) {
1245
- return serviceData.indicator === _types2.ServiceIndicator.CALLING || serviceData.indicator === _types2.ServiceIndicator.GUEST_CALLING;
1271
+ return serviceData.indicator === _types3.ServiceIndicator.CALLING || serviceData.indicator === _types3.ServiceIndicator.GUEST_CALLING;
1246
1272
  }
1247
1273
  return regexp.test(domain);
1248
1274
  }
@@ -1255,7 +1281,7 @@ function isValidServiceDomain(serviceData) {
1255
1281
  * @param serviceData - Input service data to be validated.
1256
1282
  */
1257
1283
  function validateServiceData(serviceData) {
1258
- var allowedValues = (0, _values.default)(_types2.ServiceIndicator);
1284
+ var allowedValues = (0, _values.default)(_types3.ServiceIndicator);
1259
1285
  var formattedValues = allowedValues.join(', ').replace(/,([^,]*)$/, ' and$1');
1260
1286
  if (!isValidServiceIndicator(serviceData.indicator)) {
1261
1287
  throw new Error("Invalid service indicator, Allowed values are: ".concat(formattedValues));
@@ -1322,40 +1348,78 @@ function modifySdpForIPv4(sdp) {
1322
1348
  /**
1323
1349
  * Uploads logs to backend.
1324
1350
  *
1325
- * @param webex - Webex object to get service urls.
1326
- * @param data - Data to be uploaded.
1351
+ * @param metaData - Metadata to be uploaded.
1352
+ * @param throwError - Whether to throw exception on failure (default: false).
1353
+ * @returns Promise containing upload response if successful.
1327
1354
  */
1328
1355
  function uploadLogs() {
1329
1356
  return _uploadLogs.apply(this, arguments);
1330
1357
  }
1331
1358
  function _uploadLogs() {
1332
1359
  _uploadLogs = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() {
1333
- var data,
1334
- _webex,
1360
+ var metaData,
1361
+ throwError,
1362
+ webex,
1363
+ feedbackId,
1364
+ response,
1365
+ errorLog,
1335
1366
  _args10 = arguments;
1336
1367
  return _regenerator.default.wrap(function _callee10$(_context10) {
1337
1368
  while (1) switch (_context10.prev = _context10.next) {
1338
1369
  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;
1370
+ metaData = _args10.length > 0 && _args10[0] !== undefined ? _args10[0] : {};
1371
+ throwError = _args10.length > 1 && _args10[1] !== undefined ? _args10[1] : false;
1372
+ webex = _SDKConnector.default.getWebex();
1373
+ feedbackId = crypto.randomUUID();
1374
+ _context10.prev = 4;
1375
+ _context10.next = 7;
1376
+ return webex.internal.support.submitLogs(_objectSpread(_objectSpread({}, metaData), {}, {
1377
+ feedbackId: feedbackId
1378
+ }), undefined,
1379
+ // we dont send logs but take from webex logger
1380
+ {
1381
+ type: 'diff'
1382
+ } // this is to take the diff logs from previous upload
1383
+ );
1347
1384
  case 7:
1348
- _context10.prev = 7;
1349
- _context10.t0 = _context10["catch"](1);
1350
- _Logger.default.error(_context10.t0, {
1385
+ response = _context10.sent;
1386
+ _Logger.default.info("Logs uploaded successfully with feedbackId: ".concat(feedbackId), {
1351
1387
  file: _constants.UTILS_FILE,
1352
1388
  method: 'uploadLogs'
1353
1389
  });
1354
- case 10:
1390
+ (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);
1391
+ return _context10.abrupt("return", _objectSpread(_objectSpread(_objectSpread(_objectSpread({
1392
+ trackingid: response.trackingid
1393
+ }, response.url ? {
1394
+ url: response.url
1395
+ } : {}), response.userId ? {
1396
+ userId: response.userId
1397
+ } : {}), response.correlationId ? {
1398
+ correlationId: response.correlationId
1399
+ } : {}), {}, {
1400
+ feedbackId: feedbackId
1401
+ }));
1402
+ case 13:
1403
+ _context10.prev = 13;
1404
+ _context10.t0 = _context10["catch"](4);
1405
+ errorLog = new Error("Failed to upload Logs ".concat(_context10.t0));
1406
+ _Logger.default.error(errorLog, {
1407
+ file: _constants.UTILS_FILE,
1408
+ method: 'uploadLogs'
1409
+ });
1410
+ (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);
1411
+ if (!throwError) {
1412
+ _context10.next = 20;
1413
+ break;
1414
+ }
1415
+ throw _context10.t0;
1416
+ case 20:
1417
+ return _context10.abrupt("return", undefined);
1418
+ case 21:
1355
1419
  case "end":
1356
1420
  return _context10.stop();
1357
1421
  }
1358
- }, _callee10, null, [[1, 7]]);
1422
+ }, _callee10, null, [[4, 13]]);
1359
1423
  }));
1360
1424
  return _uploadLogs.apply(this, arguments);
1361
1425
  }