@webex/calling 3.11.0 → 3.12.0

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 (188) hide show
  1. package/dist/CallHistory/CallHistory.js +596 -0
  2. package/dist/CallHistory/CallHistory.js.map +1 -0
  3. package/dist/CallHistory/CallHistory.test.js +916 -0
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -0
  5. package/dist/CallHistory/callHistoryFixtures.js +650 -0
  6. package/dist/CallHistory/callHistoryFixtures.js.map +1 -0
  7. package/dist/CallHistory/constants.js +38 -0
  8. package/dist/CallHistory/constants.js.map +1 -0
  9. package/dist/CallHistory/types.js +7 -0
  10. package/dist/CallHistory/types.js.map +1 -0
  11. package/dist/CallSettings/CallSettings.js +311 -0
  12. package/dist/CallSettings/CallSettings.js.map +1 -0
  13. package/dist/CallSettings/CallSettings.test.js +122 -0
  14. package/dist/CallSettings/CallSettings.test.js.map +1 -0
  15. package/dist/CallSettings/UcmBackendConnector.js +308 -0
  16. package/dist/CallSettings/UcmBackendConnector.js.map +1 -0
  17. package/dist/CallSettings/UcmBackendConnector.test.js +411 -0
  18. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -0
  19. package/dist/CallSettings/WxCallBackendConnector.js +597 -0
  20. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -0
  21. package/dist/CallSettings/WxCallBackendConnector.test.js +904 -0
  22. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -0
  23. package/dist/CallSettings/constants.js +31 -0
  24. package/dist/CallSettings/constants.js.map +1 -0
  25. package/dist/CallSettings/testFixtures.js +68 -0
  26. package/dist/CallSettings/testFixtures.js.map +1 -0
  27. package/dist/CallSettings/types.js +7 -0
  28. package/dist/CallSettings/types.js.map +1 -0
  29. package/dist/CallingClient/CallingClient.js +1119 -0
  30. package/dist/CallingClient/CallingClient.js.map +1 -0
  31. package/dist/CallingClient/CallingClient.test.js +1266 -0
  32. package/dist/CallingClient/CallingClient.test.js.map +1 -0
  33. package/dist/CallingClient/callRecordFixtures.js +101 -0
  34. package/dist/CallingClient/callRecordFixtures.js.map +1 -0
  35. package/dist/CallingClient/calling/CallerId/index.js +275 -0
  36. package/dist/CallingClient/calling/CallerId/index.js.map +1 -0
  37. package/dist/CallingClient/calling/CallerId/index.test.js +275 -0
  38. package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -0
  39. package/dist/CallingClient/calling/CallerId/types.js +7 -0
  40. package/dist/CallingClient/calling/CallerId/types.js.map +1 -0
  41. package/dist/CallingClient/calling/call.js +3486 -0
  42. package/dist/CallingClient/calling/call.js.map +1 -0
  43. package/dist/CallingClient/calling/call.test.js +3612 -0
  44. package/dist/CallingClient/calling/call.test.js.map +1 -0
  45. package/dist/CallingClient/calling/callManager.js +460 -0
  46. package/dist/CallingClient/calling/callManager.js.map +1 -0
  47. package/dist/CallingClient/calling/callManager.test.js +741 -0
  48. package/dist/CallingClient/calling/callManager.test.js.map +1 -0
  49. package/dist/CallingClient/calling/index.js +30 -0
  50. package/dist/CallingClient/calling/index.js.map +1 -0
  51. package/dist/CallingClient/calling/types.js +74 -0
  52. package/dist/CallingClient/calling/types.js.map +1 -0
  53. package/dist/CallingClient/callingClientFixtures.js +143 -0
  54. package/dist/CallingClient/callingClientFixtures.js.map +1 -0
  55. package/dist/CallingClient/constants.js +243 -0
  56. package/dist/CallingClient/constants.js.map +1 -0
  57. package/dist/CallingClient/line/index.js +332 -0
  58. package/dist/CallingClient/line/index.js.map +1 -0
  59. package/dist/CallingClient/line/line.test.js +327 -0
  60. package/dist/CallingClient/line/line.test.js.map +1 -0
  61. package/dist/CallingClient/line/types.js +21 -0
  62. package/dist/CallingClient/line/types.js.map +1 -0
  63. package/dist/CallingClient/registration/index.js +19 -0
  64. package/dist/CallingClient/registration/index.js.map +1 -0
  65. package/dist/CallingClient/registration/register.js +1686 -0
  66. package/dist/CallingClient/registration/register.js.map +1 -0
  67. package/dist/CallingClient/registration/register.test.js +1885 -0
  68. package/dist/CallingClient/registration/register.test.js.map +1 -0
  69. package/dist/CallingClient/registration/registerFixtures.js +36 -0
  70. package/dist/CallingClient/registration/registerFixtures.js.map +1 -0
  71. package/dist/CallingClient/registration/types.js +7 -0
  72. package/dist/CallingClient/registration/types.js.map +1 -0
  73. package/dist/CallingClient/registration/webWorker.js +130 -0
  74. package/dist/CallingClient/registration/webWorker.js.map +1 -0
  75. package/dist/CallingClient/registration/webWorker.test.js +303 -0
  76. package/dist/CallingClient/registration/webWorker.test.js.map +1 -0
  77. package/dist/CallingClient/registration/webWorkerStr.js +15 -0
  78. package/dist/CallingClient/registration/webWorkerStr.js.map +1 -0
  79. package/dist/CallingClient/types.js +7 -0
  80. package/dist/CallingClient/types.js.map +1 -0
  81. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js +142 -0
  82. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js.map +1 -0
  83. package/dist/Contacts/ContactsClient.js +1206 -0
  84. package/dist/Contacts/ContactsClient.js.map +1 -0
  85. package/dist/Contacts/ContactsClient.test.js +1004 -0
  86. package/dist/Contacts/ContactsClient.test.js.map +1 -0
  87. package/dist/Contacts/constants.js +40 -0
  88. package/dist/Contacts/constants.js.map +1 -0
  89. package/dist/Contacts/contactFixtures.js +430 -0
  90. package/dist/Contacts/contactFixtures.js.map +1 -0
  91. package/dist/Contacts/types.js +43 -0
  92. package/dist/Contacts/types.js.map +1 -0
  93. package/dist/Errors/catalog/CallError.js +89 -0
  94. package/dist/Errors/catalog/CallError.js.map +1 -0
  95. package/dist/Errors/catalog/CallingDeviceError.js +83 -0
  96. package/dist/Errors/catalog/CallingDeviceError.js.map +1 -0
  97. package/dist/Errors/catalog/ExtendedError.js +42 -0
  98. package/dist/Errors/catalog/ExtendedError.js.map +1 -0
  99. package/dist/Errors/catalog/LineError.js +85 -0
  100. package/dist/Errors/catalog/LineError.js.map +1 -0
  101. package/dist/Errors/index.js +28 -0
  102. package/dist/Errors/index.js.map +1 -0
  103. package/dist/Errors/types.js +59 -0
  104. package/dist/Errors/types.js.map +1 -0
  105. package/dist/Events/impl/index.js +79 -0
  106. package/dist/Events/impl/index.js.map +1 -0
  107. package/dist/Events/types.js +107 -0
  108. package/dist/Events/types.js.map +1 -0
  109. package/dist/Logger/index.js +228 -0
  110. package/dist/Logger/index.js.map +1 -0
  111. package/dist/Logger/index.test.js +87 -0
  112. package/dist/Logger/index.test.js.map +1 -0
  113. package/dist/Logger/types.js +34 -0
  114. package/dist/Logger/types.js.map +1 -0
  115. package/dist/Metrics/index.js +534 -0
  116. package/dist/Metrics/index.js.map +1 -0
  117. package/dist/Metrics/index.test.js +463 -0
  118. package/dist/Metrics/index.test.js.map +1 -0
  119. package/dist/Metrics/types.js +64 -0
  120. package/dist/Metrics/types.js.map +1 -0
  121. package/dist/SDKConnector/index.js +102 -0
  122. package/dist/SDKConnector/index.js.map +1 -0
  123. package/dist/SDKConnector/index.test.js +9 -0
  124. package/dist/SDKConnector/index.test.js.map +1 -0
  125. package/dist/SDKConnector/types.js +7 -0
  126. package/dist/SDKConnector/types.js.map +1 -0
  127. package/dist/SDKConnector/utils.js +39 -0
  128. package/dist/SDKConnector/utils.js.map +1 -0
  129. package/dist/SDKConnector/utils.test.js +9 -0
  130. package/dist/SDKConnector/utils.test.js.map +1 -0
  131. package/dist/Voicemail/BroadworksBackendConnector.js +699 -0
  132. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -0
  133. package/dist/Voicemail/BroadworksBackendConnector.test.js +820 -0
  134. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -0
  135. package/dist/Voicemail/UcmBackendConnector.js +628 -0
  136. package/dist/Voicemail/UcmBackendConnector.js.map +1 -0
  137. package/dist/Voicemail/UcmBackendConnector.test.js +738 -0
  138. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -0
  139. package/dist/Voicemail/Voicemail.js +472 -0
  140. package/dist/Voicemail/Voicemail.js.map +1 -0
  141. package/dist/Voicemail/Voicemail.test.js +391 -0
  142. package/dist/Voicemail/Voicemail.test.js.map +1 -0
  143. package/dist/Voicemail/WxCallBackendConnector.js +657 -0
  144. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -0
  145. package/dist/Voicemail/WxCallBackendConnector.test.js +1225 -0
  146. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -0
  147. package/dist/Voicemail/constants.js +61 -0
  148. package/dist/Voicemail/constants.js.map +1 -0
  149. package/dist/Voicemail/types.js +7 -0
  150. package/dist/Voicemail/types.js.map +1 -0
  151. package/dist/Voicemail/voicemailFixture.js +524 -0
  152. package/dist/Voicemail/voicemailFixture.js.map +1 -0
  153. package/dist/api.js +157 -0
  154. package/dist/api.js.map +1 -0
  155. package/dist/common/Utils.js +1483 -0
  156. package/dist/common/Utils.js.map +1 -0
  157. package/dist/common/Utils.test.js +1989 -0
  158. package/dist/common/Utils.test.js.map +1 -0
  159. package/dist/common/constants.js +62 -0
  160. package/dist/common/constants.js.map +1 -0
  161. package/dist/common/index.js +19 -0
  162. package/dist/common/index.js.map +1 -0
  163. package/dist/common/testUtil.js +983 -0
  164. package/dist/common/testUtil.js.map +1 -0
  165. package/dist/common/types.js +75 -0
  166. package/dist/common/types.js.map +1 -0
  167. package/dist/index.js +321 -0
  168. package/dist/index.js.map +1 -0
  169. package/dist/module/CallHistory/CallHistory.js +28 -17
  170. package/dist/module/CallingClient/CallingClient.js +43 -1
  171. package/dist/module/CallingClient/calling/call.js +3 -2
  172. package/dist/module/CallingClient/constants.js +2 -0
  173. package/dist/module/CallingClient/registration/register.js +8 -0
  174. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  175. package/dist/types/CallingClient/CallingClient.d.ts +2 -1
  176. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  177. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  178. package/dist/types/CallingClient/constants.d.ts +2 -0
  179. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  180. package/dist/types/CallingClient/registration/register.d.ts +2 -1
  181. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  182. package/dist/types/CallingClient/registration/types.d.ts +2 -1
  183. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  184. package/dist/types/CallingClient/types.d.ts +2 -1
  185. package/dist/types/CallingClient/types.d.ts.map +1 -1
  186. package/dist/types/common/types.d.ts +4 -0
  187. package/dist/types/common/types.d.ts.map +1 -1
  188. package/package.json +4 -4
@@ -0,0 +1,596 @@
1
+ "use strict";
2
+
3
+ var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
+ var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
5
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
7
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
8
+ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
9
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
10
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
11
+ _Object$defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ exports.createCallHistoryClient = exports.CallHistory = void 0;
15
+ var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
16
+ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
17
+ var _isNan = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/number/is-nan"));
18
+ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
19
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
20
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
21
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
22
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
23
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
24
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
25
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
26
+ var _SDKConnector = _interopRequireDefault(require("../SDKConnector"));
27
+ var _types = require("../common/types");
28
+ var _Logger = _interopRequireDefault(require("../Logger"));
29
+ var _Utils = require("../common/Utils");
30
+ var _constants = require("./constants");
31
+ var _constants2 = require("../common/constants");
32
+ var _types2 = require("../Events/types");
33
+ var _impl = require("../Events/impl");
34
+ function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
35
+ 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; }
36
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? _Reflect$construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
37
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /* eslint-disable dot-notation */ /* eslint-disable no-underscore-dangle */
38
+ /**
39
+ * `CallHistory` module is designed to facilitate the retrieval of Call History Records by providing a set of APIs.
40
+ *
41
+ * This code snippet demonstrates how to create an instance of `CallHistory` using webex and logger.
42
+ *
43
+ * @example
44
+ * ```javascript
45
+ * const callHistory = createCallHistoryClient(webex, logger);
46
+ * ```
47
+ */
48
+ var CallHistory = exports.CallHistory = /*#__PURE__*/function (_Eventing) {
49
+ /**
50
+ * @ignore
51
+ */
52
+ function CallHistory(webex, logger) {
53
+ var _this$webex$internal$;
54
+ var _this;
55
+ (0, _classCallCheck2.default)(this, CallHistory);
56
+ _this = _callSuper(this, CallHistory);
57
+ (0, _defineProperty2.default)(_this, "sdkConnector", void 0);
58
+ (0, _defineProperty2.default)(_this, "webex", void 0);
59
+ (0, _defineProperty2.default)(_this, "janusUrl", '');
60
+ (0, _defineProperty2.default)(_this, "fromDate", '');
61
+ (0, _defineProperty2.default)(_this, "loggerContext", {
62
+ file: _constants.CALL_HISTORY_FILE,
63
+ method: _constants.METHODS.GET_CALL_HISTORY_DATA
64
+ });
65
+ (0, _defineProperty2.default)(_this, "userSessions", void 0);
66
+ (0, _defineProperty2.default)(_this, "handleSessionEvents", /*#__PURE__*/function () {
67
+ var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(event) {
68
+ return _regenerator.default.wrap(function (_context) {
69
+ while (1) switch (_context.prev = _context.next) {
70
+ case 0:
71
+ if (event && event.data.userSessions.userSessions) {
72
+ _this.emit(_types2.COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSION_INFO, event);
73
+ }
74
+ case 1:
75
+ case "end":
76
+ return _context.stop();
77
+ }
78
+ }, _callee);
79
+ }));
80
+ return function (_x) {
81
+ return _ref.apply(this, arguments);
82
+ };
83
+ }());
84
+ (0, _defineProperty2.default)(_this, "handleUserReadSessionEvents", /*#__PURE__*/function () {
85
+ var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(event) {
86
+ return _regenerator.default.wrap(function (_context2) {
87
+ while (1) switch (_context2.prev = _context2.next) {
88
+ case 0:
89
+ if (event && event.data.userReadSessions.userReadSessions) {
90
+ _this.emit(_types2.COMMON_EVENT_KEYS.CALL_HISTORY_USER_VIEWED_SESSIONS, event);
91
+ }
92
+ case 1:
93
+ case "end":
94
+ return _context2.stop();
95
+ }
96
+ }, _callee2);
97
+ }));
98
+ return function (_x2) {
99
+ return _ref2.apply(this, arguments);
100
+ };
101
+ }());
102
+ (0, _defineProperty2.default)(_this, "handleUserSessionsDeletedEvents", /*#__PURE__*/function () {
103
+ var _ref3 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(event) {
104
+ return _regenerator.default.wrap(function (_context3) {
105
+ while (1) switch (_context3.prev = _context3.next) {
106
+ case 0:
107
+ if (event && event.data.deletedSessions) {
108
+ _this.emit(_types2.COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSIONS_DELETED, event);
109
+ }
110
+ case 1:
111
+ case "end":
112
+ return _context3.stop();
113
+ }
114
+ }, _callee3);
115
+ }));
116
+ return function (_x3) {
117
+ return _ref3.apply(this, arguments);
118
+ };
119
+ }());
120
+ _this.sdkConnector = _SDKConnector.default;
121
+ if (!_this.sdkConnector.getWebex()) {
122
+ _SDKConnector.default.setWebex(webex);
123
+ }
124
+ _this.webex = _this.sdkConnector.getWebex();
125
+ _this.janusUrl = ((_this$webex$internal$ = _this.webex.internal.services._serviceUrls) === null || _this$webex$internal$ === void 0 ? void 0 : _this$webex$internal$.janus) || _this.webex.internal.services.get(_this.webex.internal.services._activeServices.janus);
126
+ _this.registerSessionsListener();
127
+ _Logger.default.setLogger(logger.level, _constants.CALL_HISTORY_FILE);
128
+ return _this;
129
+ }
130
+
131
+ /**
132
+ * Function to display the Janus API response.
133
+ * @param days - Number of days to fetch the call history data.
134
+ * @param limit - Number of records to be fetched.
135
+ * @param sort - Sort the records in ascending or descending order.
136
+ * @param sortBy - Sort the records by start time or end time.
137
+ */
138
+ (0, _inherits2.default)(CallHistory, _Eventing);
139
+ return (0, _createClass2.default)(CallHistory, [{
140
+ key: "getCallHistoryData",
141
+ value: (function () {
142
+ var _getCallHistoryData = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() {
143
+ var days,
144
+ limit,
145
+ sort,
146
+ sortBy,
147
+ date,
148
+ callingBackend,
149
+ sortByParam,
150
+ sortParam,
151
+ sharedSessionsParam,
152
+ url,
153
+ _janusResponse$header,
154
+ janusResponse,
155
+ hasCucmDN,
156
+ _ucmLinesResponse$dat,
157
+ ucmLinesResponse,
158
+ ucmLinesData,
159
+ responseDetails,
160
+ errorInfo,
161
+ errorStatus,
162
+ _args4 = arguments,
163
+ _t,
164
+ _t2;
165
+ return _regenerator.default.wrap(function (_context4) {
166
+ while (1) switch (_context4.prev = _context4.next) {
167
+ case 0:
168
+ days = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : _constants.NUMBER_OF_DAYS;
169
+ limit = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : _constants.LIMIT;
170
+ sort = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : _types.SORT.DEFAULT;
171
+ sortBy = _args4.length > 3 && _args4[3] !== undefined ? _args4[3] : _types.SORT_BY.DEFAULT;
172
+ /*
173
+ 1. Mandatory field for Janus API - fromDate
174
+ 2. Calculating the fromDate by deducting the NUMBER_OF_DAYS with the current date
175
+ */
176
+ date = new Date();
177
+ callingBackend = (0, _Utils.getCallingBackEnd)(this.webex);
178
+ date.setDate(date.getDate() - days);
179
+ this.fromDate = date.toISOString();
180
+ sortByParam = (0, _values.default)(_types.SORT_BY).includes(sortBy) ? sortBy : _types.SORT_BY.DEFAULT;
181
+ sortParam = (0, _values.default)(_types.SORT).includes(sort) ? sort : _types.SORT.DEFAULT;
182
+ _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with days=").concat(days, ", limit=").concat(limit, ", sort=").concat(sortParam, ", sortBy=").concat(sortByParam), this.loggerContext);
183
+ _Logger.default.info("Janus API URL: ".concat(this.janusUrl), this.loggerContext);
184
+ _Logger.default.info("Call history from date : ".concat(this.fromDate), this.loggerContext);
185
+
186
+ // Add includeSharedSessions=true parameter for WXC backend to fetch calls with sessionType "WEBEXCALLING_SHARED"
187
+ sharedSessionsParam = callingBackend === _types.CALLING_BACKEND.WXC ? '&includeSharedSessions=true' : '';
188
+ _Logger.default.info("Fetching call history for ".concat(callingBackend, " backend").concat(callingBackend === _types.CALLING_BACKEND.WXC ? ' with shared sessions' : ''), this.loggerContext);
189
+ url = "".concat(this.janusUrl, "/").concat(_constants.HISTORY, "/").concat(_constants2.USER_SESSIONS).concat(_constants.FROM_DATE, "=").concat(this.fromDate, "&limit=").concat(limit, "&includeNewSessionTypes=true&sort=").concat(sortParam).concat(sharedSessionsParam);
190
+ _context4.prev = 1;
191
+ _context4.next = 2;
192
+ return this.webex.request({
193
+ uri: "".concat(url),
194
+ method: _types.HTTP_METHODS.GET,
195
+ service: _types.ALLOWED_SERVICES.JANUS
196
+ });
197
+ case 2:
198
+ janusResponse = _context4.sent;
199
+ _Logger.default.log("Response trackingId: ".concat(janusResponse === null || janusResponse === void 0 ? void 0 : (_janusResponse$header = janusResponse.headers) === null || _janusResponse$header === void 0 ? void 0 : _janusResponse$header.trackingid), this.loggerContext);
200
+ this.userSessions = janusResponse.body;
201
+ if (sortByParam === _types.SORT_BY.START_TIME) {
202
+ if (sortParam === _types.SORT.DESC) {
203
+ this.userSessions[_constants2.USER_SESSIONS].sort(function (element, compareElement) {
204
+ return new Date(compareElement[sortByParam]).getTime() - new Date(element[sortByParam]).getTime();
205
+ });
206
+ } else if (sortParam === _types.SORT.ASC) {
207
+ this.userSessions[_constants2.USER_SESSIONS].sort(function (element, compareElement) {
208
+ return new Date(element[sortByParam]).getTime() - new Date(compareElement[sortByParam]).getTime();
209
+ });
210
+ }
211
+ }
212
+ // Check the calling backend (BEMS01958007: non-fatal so /lines or uploadLogs failure does not drop call history)
213
+ if (!(callingBackend === _types.CALLING_BACKEND.UCM)) {
214
+ _context4.next = 7;
215
+ break;
216
+ }
217
+ _context4.prev = 3;
218
+ if (!(this.userSessions[_constants2.USER_SESSIONS] && this.userSessions[_constants2.USER_SESSIONS].length > 0)) {
219
+ _context4.next = 5;
220
+ break;
221
+ }
222
+ // Check if cucmDN exists and is valid in any of the userSessions
223
+ hasCucmDN = this.userSessions[_constants2.USER_SESSIONS].some(function (session) {
224
+ return session.self.cucmDN && session.self.cucmDN.length > 0;
225
+ }); // If any user session has cucmDN, proceed to fetch line data
226
+ if (!hasCucmDN) {
227
+ _context4.next = 5;
228
+ break;
229
+ }
230
+ _Logger.default.info('Fetching UCM lines data for call history enrichment', this.loggerContext);
231
+ _context4.next = 4;
232
+ return this.fetchUCMLinesData();
233
+ case 4:
234
+ ucmLinesResponse = _context4.sent;
235
+ // Check if the Lines API response was successful
236
+ if (ucmLinesResponse.statusCode === 200 && (_ucmLinesResponse$dat = ucmLinesResponse.data.lines) !== null && _ucmLinesResponse$dat !== void 0 && _ucmLinesResponse$dat.devices) {
237
+ ucmLinesData = ucmLinesResponse.data.lines.devices; // Iterate over user sessions and match with Lines data
238
+ this.userSessions[_constants2.USER_SESSIONS].forEach(function (session) {
239
+ var cucmDN = session.self.cucmDN;
240
+ if (cucmDN) {
241
+ ucmLinesData.forEach(function (device) {
242
+ device.lines.forEach(function (line) {
243
+ if (line.dnorpattern === cucmDN) {
244
+ session.self.ucmLineNumber = line.index; // Assign the ucmLineNumber
245
+ }
246
+ });
247
+ });
248
+ }
249
+ });
250
+ _Logger.default.log("UCM line number enrichment completed", this.loggerContext);
251
+ } else {
252
+ _Logger.default.info("UCM lines API returned statusCode ".concat(ucmLinesResponse === null || ucmLinesResponse === void 0 ? void 0 : ucmLinesResponse.statusCode, " or no devices, ") + 'returning call history without line number enrichment', this.loggerContext);
253
+ }
254
+ case 5:
255
+ _context4.next = 7;
256
+ break;
257
+ case 6:
258
+ _context4.prev = 6;
259
+ _t = _context4["catch"](3);
260
+ _Logger.default.warn("UCM lines fetch or enrich failed, returning call history without line numbers: ".concat((0, _stringify.default)(_t)), {
261
+ file: _constants.CALL_HISTORY_FILE,
262
+ method: _constants.METHODS.GET_CALL_HISTORY_DATA
263
+ });
264
+ // Continue and return userSessions without ucmLineNumber enrichment
265
+ case 7:
266
+ responseDetails = {
267
+ statusCode: this.userSessions[_constants2.STATUS_CODE],
268
+ data: {
269
+ userSessions: this.userSessions[_constants2.USER_SESSIONS]
270
+ },
271
+ message: _constants2.SUCCESS_MESSAGE
272
+ };
273
+ _Logger.default.log("Successfully retrieved call history data with ".concat(this.userSessions[_constants2.USER_SESSIONS].length, " records"), this.loggerContext);
274
+ return _context4.abrupt("return", responseDetails);
275
+ case 8:
276
+ _context4.prev = 8;
277
+ _t2 = _context4["catch"](1);
278
+ _Logger.default.error("Failed to get call history: ".concat((0, _stringify.default)(_t2)), {
279
+ file: _constants.CALL_HISTORY_FILE,
280
+ method: _constants.METHODS.GET_CALL_HISTORY_DATA
281
+ });
282
+ _context4.next = 9;
283
+ return (0, _Utils.uploadLogs)();
284
+ case 9:
285
+ errorInfo = _t2;
286
+ errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, this.loggerContext);
287
+ return _context4.abrupt("return", errorStatus);
288
+ case 10:
289
+ case "end":
290
+ return _context4.stop();
291
+ }
292
+ }, _callee4, this, [[1, 8], [3, 6]]);
293
+ }));
294
+ function getCallHistoryData() {
295
+ return _getCallHistoryData.apply(this, arguments);
296
+ }
297
+ return getCallHistoryData;
298
+ }()
299
+ /**
300
+ * Function to update the missed call status in the call history using sessionId and time.
301
+ * @param endTimeSessionIds - An array of objects containing endTime and sessionId of the missed call history records
302
+ * @returns {Promise} Resolves to an object of type {@link UpdateMissedCallsResponse}.Response details with success or error status.
303
+ */
304
+ )
305
+ }, {
306
+ key: "updateMissedCalls",
307
+ value: (function () {
308
+ var _updateMissedCalls = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5(endTimeSessionIds) {
309
+ var loggerContext, santizedSessionIds, requestBody, _response$headers, updateMissedCallContentUrl, response, data, responseDetails, errorInfo, errorStatus, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t0;
310
+ return _regenerator.default.wrap(function (_context5) {
311
+ while (1) switch (_context5.prev = _context5.next) {
312
+ case 0:
313
+ loggerContext = {
314
+ file: _constants.CALL_HISTORY_FILE,
315
+ method: _constants.METHODS.UPDATE_MISSED_CALLS
316
+ }; // Convert endTime to milliseconds for each session
317
+ santizedSessionIds = endTimeSessionIds.map(function (session) {
318
+ return _objectSpread(_objectSpread({}, session), {}, {
319
+ endTime: new Date(session.endTime).getTime()
320
+ });
321
+ });
322
+ requestBody = {
323
+ endTimeSessionIds: santizedSessionIds
324
+ };
325
+ _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with sessions: ").concat((0, _stringify.default)(santizedSessionIds)), loggerContext);
326
+ _context5.prev = 1;
327
+ updateMissedCallContentUrl = "".concat(this.janusUrl, "/").concat(_constants.HISTORY, "/").concat(_constants2.USER_SESSIONS, "/").concat(_constants.UPDATE_MISSED_CALLS_ENDPOINT); // Make a POST request to update missed calls
328
+ _t3 = fetch;
329
+ _t4 = updateMissedCallContentUrl;
330
+ _t5 = _types.HTTP_METHODS.POST;
331
+ _t6 = _defineProperty2.default;
332
+ _t7 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
333
+ _context5.next = 2;
334
+ return this.webex.credentials.getUserToken();
335
+ case 2:
336
+ _t8 = _t6(_t7, "Authorization", _context5.sent);
337
+ _t9 = (0, _stringify.default)(requestBody);
338
+ _context5.next = 3;
339
+ return _t3(_t4, {
340
+ method: _t5,
341
+ headers: _t8,
342
+ body: _t9
343
+ });
344
+ case 3:
345
+ response = _context5.sent;
346
+ if (response.ok) {
347
+ _context5.next = 4;
348
+ break;
349
+ }
350
+ throw new Error("".concat(response.status));
351
+ case 4:
352
+ _Logger.default.log("Response trackingId: ".concat((_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.get('trackingid')), loggerContext);
353
+ _context5.next = 5;
354
+ return response.json();
355
+ case 5:
356
+ data = _context5.sent;
357
+ _Logger.default.log("Missed calls are successfully read by the user", loggerContext);
358
+ responseDetails = {
359
+ statusCode: data.statusCode,
360
+ data: {
361
+ readStatusMessage: _constants.SET_READ_STATE_SUCCESS_MESSAGE
362
+ },
363
+ message: _constants2.SUCCESS_MESSAGE
364
+ };
365
+ _Logger.default.log("Successfully updated ".concat(santizedSessionIds === null || santizedSessionIds === void 0 ? void 0 : santizedSessionIds.length, " missed calls"), loggerContext);
366
+ return _context5.abrupt("return", responseDetails);
367
+ case 6:
368
+ _context5.prev = 6;
369
+ _t0 = _context5["catch"](1);
370
+ _Logger.default.error("Failed to update missed calls: ".concat((0, _stringify.default)(_t0)), {
371
+ file: _constants.CALL_HISTORY_FILE,
372
+ method: _constants.METHODS.UPDATE_MISSED_CALLS
373
+ });
374
+ _context5.next = 7;
375
+ return (0, _Utils.uploadLogs)();
376
+ case 7:
377
+ // Catch the 401 error from try block, return the error object to user
378
+ errorInfo = {
379
+ statusCode: _t0 instanceof Error ? Number(_t0.message) : ''
380
+ };
381
+ errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
382
+ return _context5.abrupt("return", errorStatus);
383
+ case 8:
384
+ case "end":
385
+ return _context5.stop();
386
+ }
387
+ }, _callee5, this, [[1, 6]]);
388
+ }));
389
+ function updateMissedCalls(_x4) {
390
+ return _updateMissedCalls.apply(this, arguments);
391
+ }
392
+ return updateMissedCalls;
393
+ }()
394
+ /**
395
+ * Function to display the UCM Lines API response.
396
+ * @returns {Promise} Resolves to an object of type {@link UCMLinesResponse}.Response details with success or error status.
397
+ */
398
+ )
399
+ }, {
400
+ key: "fetchUCMLinesData",
401
+ value: (function () {
402
+ var _fetchUCMLinesData = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6() {
403
+ var loggerContext, vgEndpoint, userId, orgId, linesURIForUCM, _response$headers2, response, ucmLineDetails, errorInfo, errorStatus, _t1;
404
+ return _regenerator.default.wrap(function (_context6) {
405
+ while (1) switch (_context6.prev = _context6.next) {
406
+ case 0:
407
+ loggerContext = {
408
+ file: _constants.CALL_HISTORY_FILE,
409
+ method: _constants.METHODS.FETCH_UCM_LINES_DATA
410
+ };
411
+ vgEndpoint = (0, _Utils.getVgActionEndpoint)(this.webex, _types.CALLING_BACKEND.UCM);
412
+ userId = this.webex.internal.device.userId;
413
+ orgId = this.webex.internal.device.orgId;
414
+ linesURIForUCM = "".concat(vgEndpoint, "/").concat(_constants.VERSION_1, "/").concat(_constants.UNIFIED_COMMUNICATIONS, "/").concat(_constants.CONFIG, "/").concat(_constants.PEOPLE, "/").concat(userId, "/").concat(_constants.LINES, "?").concat(_constants.ORG_ID, "=").concat(orgId);
415
+ _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with URL: ").concat(linesURIForUCM), loggerContext);
416
+ _context6.prev = 1;
417
+ _context6.next = 2;
418
+ return this.webex.request({
419
+ uri: "".concat(linesURIForUCM),
420
+ method: _types.HTTP_METHODS.GET
421
+ });
422
+ case 2:
423
+ response = _context6.sent;
424
+ _Logger.default.log("Response trackingId: ".concat(response === null || response === void 0 ? void 0 : (_response$headers2 = response.headers) === null || _response$headers2 === void 0 ? void 0 : _response$headers2.trackingid), loggerContext);
425
+ ucmLineDetails = {
426
+ statusCode: Number(response.statusCode),
427
+ data: {
428
+ lines: response.body
429
+ },
430
+ message: _constants2.SUCCESS_MESSAGE
431
+ };
432
+ _Logger.default.log("Line details fetched successfully", loggerContext);
433
+ return _context6.abrupt("return", ucmLineDetails);
434
+ case 3:
435
+ _context6.prev = 3;
436
+ _t1 = _context6["catch"](1);
437
+ _Logger.default.error("Failed to fetch UCM lines data: ".concat((0, _stringify.default)(_t1)), {
438
+ file: _constants.CALL_HISTORY_FILE,
439
+ method: _constants.METHODS.FETCH_UCM_LINES_DATA
440
+ });
441
+ _context6.next = 4;
442
+ return (0, _Utils.uploadLogs)();
443
+ case 4:
444
+ errorInfo = _t1;
445
+ errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
446
+ return _context6.abrupt("return", errorStatus);
447
+ case 5:
448
+ case "end":
449
+ return _context6.stop();
450
+ }
451
+ }, _callee6, this, [[1, 3]]);
452
+ }));
453
+ function fetchUCMLinesData() {
454
+ return _fetchUCMLinesData.apply(this, arguments);
455
+ }
456
+ return fetchUCMLinesData;
457
+ }()
458
+ /**
459
+ * Function to delete the call history records using sessionId and endTime.
460
+ * @param deleteSessionIds - An array of objects containing endTime and sessionId of the call history records
461
+ * @returns {Promise} Resolves to an object of type {@link DeleteCallHistoryRecordsResponse}.Response details with success or error status.
462
+ */
463
+ )
464
+ }, {
465
+ key: "deleteCallHistoryRecords",
466
+ value: (function () {
467
+ var _deleteCallHistoryRecords = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7(deleteSessionIds) {
468
+ var loggerContext, invalidSessions, invalidSessionIds, santizedSessionIds, deleteRequestBody, _response$headers3, deleteCallHistoryRecordContentUrl, response, data, responseDetails, errorInfo, errorStatus, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
469
+ return _regenerator.default.wrap(function (_context7) {
470
+ while (1) switch (_context7.prev = _context7.next) {
471
+ case 0:
472
+ loggerContext = {
473
+ file: _constants.CALL_HISTORY_FILE,
474
+ method: _constants.METHODS.DELETE_CALL_HISTORY_RECORDS
475
+ }; // Collect all sessions with invalid dates (endTime) in an array
476
+ invalidSessions = deleteSessionIds.filter(function (session) {
477
+ return (0, _isNan.default)(new Date(session.endTime).getTime());
478
+ });
479
+ _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with sessions: ").concat((0, _stringify.default)(deleteSessionIds)), loggerContext);
480
+ if (!(invalidSessions.length > 0)) {
481
+ _context7.next = 1;
482
+ break;
483
+ }
484
+ // If there are invalid sessions, return an error with details
485
+ invalidSessionIds = invalidSessions.map(function (session) {
486
+ return session.sessionId;
487
+ }).join(', ');
488
+ _Logger.default.info("The provided date is malformed or invalid for session IDs: ".concat(invalidSessionIds), loggerContext);
489
+ return _context7.abrupt("return", {
490
+ statusCode: 400,
491
+ data: {
492
+ deleteStatusMessage: _constants.SET_DELETE_CALL_RECORDS_INVALID_DATE_FORMAT_MESSAGE
493
+ },
494
+ message: _constants2.FAILURE_MESSAGE
495
+ });
496
+ case 1:
497
+ // Convert endTime to milliseconds for each sessionId
498
+ santizedSessionIds = deleteSessionIds.map(function (session) {
499
+ return _objectSpread(_objectSpread({}, session), {}, {
500
+ endTime: new Date(session.endTime).getTime()
501
+ });
502
+ });
503
+ deleteRequestBody = {
504
+ deleteSessionIds: santizedSessionIds
505
+ };
506
+ _context7.prev = 2;
507
+ deleteCallHistoryRecordContentUrl = "".concat(this.janusUrl, "/").concat(_constants.HISTORY, "/").concat(_constants2.USER_SESSIONS, "/").concat(_constants.DELETE_CALL_HISTORY_RECORDS_ENDPOINT); // Make a POST request to delete call history records
508
+ _t10 = fetch;
509
+ _t11 = deleteCallHistoryRecordContentUrl;
510
+ _t12 = _types.HTTP_METHODS.POST;
511
+ _t13 = _defineProperty2.default;
512
+ _t14 = (0, _defineProperty2.default)({}, _constants.CONTENT_TYPE, _constants.APPLICATION_JSON);
513
+ _context7.next = 3;
514
+ return this.webex.credentials.getUserToken();
515
+ case 3:
516
+ _t15 = _t13(_t14, "Authorization", _context7.sent);
517
+ _t16 = (0, _stringify.default)(deleteRequestBody);
518
+ _context7.next = 4;
519
+ return _t10(_t11, {
520
+ method: _t12,
521
+ headers: _t15,
522
+ body: _t16
523
+ });
524
+ case 4:
525
+ response = _context7.sent;
526
+ if (response.ok) {
527
+ _context7.next = 5;
528
+ break;
529
+ }
530
+ throw new Error("".concat(response.status));
531
+ case 5:
532
+ _Logger.default.log("Response trackingId: ".concat((_response$headers3 = response.headers) === null || _response$headers3 === void 0 ? void 0 : _response$headers3.get('trackingid')), loggerContext);
533
+ _context7.next = 6;
534
+ return response.json();
535
+ case 6:
536
+ data = _context7.sent;
537
+ _Logger.default.log("Successfully deleted ".concat(santizedSessionIds === null || santizedSessionIds === void 0 ? void 0 : santizedSessionIds.length, " call history records"), loggerContext);
538
+ responseDetails = {
539
+ statusCode: data.statusCode,
540
+ data: {
541
+ deleteStatusMessage: _constants.SET_DELETE_CALL_RECORDS_SUCCESS_MESSAGE
542
+ },
543
+ message: _constants2.SUCCESS_MESSAGE
544
+ };
545
+ return _context7.abrupt("return", responseDetails);
546
+ case 7:
547
+ _context7.prev = 7;
548
+ _t17 = _context7["catch"](2);
549
+ _Logger.default.error("Failed to delete call history records: ".concat((0, _stringify.default)(_t17)), {
550
+ file: _constants.CALL_HISTORY_FILE,
551
+ method: _constants.METHODS.DELETE_CALL_HISTORY_RECORDS
552
+ });
553
+ _context7.next = 8;
554
+ return (0, _Utils.uploadLogs)();
555
+ case 8:
556
+ // Catch the 401 error from try block, return the error object to user
557
+ errorInfo = {
558
+ statusCode: _t17 instanceof Error ? Number(_t17.message) : ''
559
+ };
560
+ errorStatus = (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
561
+ return _context7.abrupt("return", errorStatus);
562
+ case 9:
563
+ case "end":
564
+ return _context7.stop();
565
+ }
566
+ }, _callee7, this, [[2, 7]]);
567
+ }));
568
+ function deleteCallHistoryRecords(_x5) {
569
+ return _deleteCallHistoryRecords.apply(this, arguments);
570
+ }
571
+ return deleteCallHistoryRecords;
572
+ }())
573
+ }, {
574
+ key: "registerSessionsListener",
575
+ value:
576
+ /**
577
+ *
578
+ */
579
+ function registerSessionsListener() {
580
+ this.sdkConnector.registerListener(_types2.MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE, this.handleSessionEvents);
581
+ this.sdkConnector.registerListener(_types2.MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_LEGACY, this.handleSessionEvents);
582
+ this.sdkConnector.registerListener(_types2.MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_VIEWED, this.handleUserReadSessionEvents);
583
+ this.sdkConnector.registerListener(_types2.MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_DELETED, this.handleUserSessionsDeletedEvents);
584
+ }
585
+ }]);
586
+ }(_impl.Eventing);
587
+ /**
588
+ * Creates a `CallHistory` client instance for accessing Call History APIs.
589
+ *
590
+ * @param {WebexSDK} webex - `Webex SDK` instance.
591
+ * @param {LoggerInterface} logger - An instance implementing LoggerInterface used to set the log level for the module.
592
+ */
593
+ var createCallHistoryClient = exports.createCallHistoryClient = function createCallHistoryClient(webex, logger) {
594
+ return new CallHistory(webex, logger);
595
+ };
596
+ //# sourceMappingURL=CallHistory.js.map