@webex/calling 3.7.0 → 3.8.0-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 (47) hide show
  1. package/dist/CallingClient/CallingClient.js +88 -9
  2. package/dist/CallingClient/CallingClient.js.map +1 -1
  3. package/dist/CallingClient/CallingClient.test.js +4 -1
  4. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  5. package/dist/CallingClient/calling/call.js +121 -57
  6. package/dist/CallingClient/calling/call.js.map +1 -1
  7. package/dist/CallingClient/calling/call.test.js +21 -8
  8. package/dist/CallingClient/calling/call.test.js.map +1 -1
  9. package/dist/Contacts/ContactsClient.js +37 -16
  10. package/dist/Contacts/ContactsClient.js.map +1 -1
  11. package/dist/Contacts/ContactsClient.test.js +34 -0
  12. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  13. package/dist/Logger/index.js +22 -14
  14. package/dist/Logger/index.js.map +1 -1
  15. package/dist/Logger/index.test.js +30 -5
  16. package/dist/Logger/index.test.js.map +1 -1
  17. package/dist/SDKConnector/types.js.map +1 -1
  18. package/dist/common/Utils.js +98 -0
  19. package/dist/common/Utils.js.map +1 -1
  20. package/dist/common/Utils.test.js +92 -0
  21. package/dist/common/Utils.test.js.map +1 -1
  22. package/dist/common/testUtil.js +3 -1
  23. package/dist/common/testUtil.js.map +1 -1
  24. package/dist/index.js +12 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/module/CallingClient/CallingClient.js +17 -1
  27. package/dist/module/CallingClient/calling/call.js +64 -1
  28. package/dist/module/Contacts/ContactsClient.js +16 -5
  29. package/dist/module/Logger/index.js +20 -11
  30. package/dist/module/common/Utils.js +49 -0
  31. package/dist/module/common/testUtil.js +3 -1
  32. package/dist/module/index.js +1 -0
  33. package/dist/types/CallingClient/CallingClient.d.ts +3 -0
  34. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  35. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  36. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  37. package/dist/types/Logger/index.d.ts +2 -0
  38. package/dist/types/Logger/index.d.ts.map +1 -1
  39. package/dist/types/SDKConnector/types.d.ts +12 -9
  40. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  41. package/dist/types/common/Utils.d.ts +2 -0
  42. package/dist/types/common/Utils.d.ts.map +1 -1
  43. package/dist/types/common/testUtil.d.ts +3 -1
  44. package/dist/types/common/testUtil.d.ts.map +1 -1
  45. package/dist/types/index.d.ts +2 -0
  46. package/dist/types/index.d.ts.map +1 -1
  47. package/package.json +3 -3
@@ -6,9 +6,13 @@ var _Array$from = require("@babel/runtime-corejs2/core-js/array/from");
6
6
  var _Symbol = require("@babel/runtime-corejs2/core-js/symbol");
7
7
  var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator");
8
8
  var _Array$isArray = require("@babel/runtime-corejs2/core-js/array/is-array");
9
- var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
10
- var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
9
+ var _Object$keys2 = require("@babel/runtime-corejs2/core-js/object/keys");
10
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
11
11
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
12
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
13
+ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
14
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
15
+ var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
12
16
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
13
17
  _Object$defineProperty(exports, "__esModule", {
14
18
  value: true
@@ -27,6 +31,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
27
31
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
28
32
  var Media = _interopRequireWildcard(require("@webex/internal-media-core"));
29
33
  var _asyncMutex = require("async-mutex");
34
+ var _uuid = require("uuid");
30
35
  var _Utils = require("../common/Utils");
31
36
  var _types = require("../Logger/types");
32
37
  var _SDKConnector = _interopRequireDefault(require("../SDKConnector"));
@@ -41,6 +46,8 @@ var _types4 = require("../Metrics/types");
41
46
  var _Metrics = require("../Metrics");
42
47
  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); }
43
48
  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; }
49
+ 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; }
50
+ 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; }
44
51
  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; } } }; }
45
52
  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); }
46
53
  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; }
@@ -142,6 +149,45 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
142
149
  _this.callManager = (0, _callManager.getCallManager)(_this.webex, serviceData.indicator);
143
150
  _this.metricManager = (0, _Metrics.getMetricManager)(_this.webex, serviceData.indicator);
144
151
  _this.mediaEngine = Media;
152
+ var adaptedLogger = {
153
+ log: function log() {
154
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
155
+ args[_key] = arguments[_key];
156
+ }
157
+ return webex.logger.log(args.join(' : '));
158
+ },
159
+ error: function error() {
160
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
161
+ args[_key2] = arguments[_key2];
162
+ }
163
+ return webex.logger.error(args.join(' : '));
164
+ },
165
+ warn: function warn() {
166
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
167
+ args[_key3] = arguments[_key3];
168
+ }
169
+ return webex.logger.warn(args.join(' : '));
170
+ },
171
+ info: function info() {
172
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
173
+ args[_key4] = arguments[_key4];
174
+ }
175
+ return webex.logger.info(args.join(' : '));
176
+ },
177
+ trace: function trace() {
178
+ for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
179
+ args[_key5] = arguments[_key5];
180
+ }
181
+ return webex.logger.trace(args.join(' : '));
182
+ },
183
+ debug: function debug() {
184
+ for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
185
+ args[_key6] = arguments[_key6];
186
+ }
187
+ return webex.logger.debug(args.join(' : '));
188
+ }
189
+ };
190
+ _this.mediaEngine.setLogger(adaptedLogger);
145
191
  _this.primaryMobiusUris = [];
146
192
  _this.backupMobiusUris = [];
147
193
  var mobiusServiceHost = '';
@@ -608,6 +654,39 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
608
654
  });
609
655
  return connectCall;
610
656
  }
657
+
658
+ /**
659
+ * uploads logs to backend for trouble shooting
660
+ * @param data
661
+ */
662
+ }, {
663
+ key: "uploadLogs",
664
+ value: (function () {
665
+ var _uploadLogs2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() {
666
+ var data,
667
+ _args10 = arguments;
668
+ return _regenerator.default.wrap(function _callee10$(_context10) {
669
+ while (1) switch (_context10.prev = _context10.next) {
670
+ case 0:
671
+ data = _args10.length > 0 && _args10[0] !== undefined ? _args10[0] : {};
672
+ if (!data.feedbackId) {
673
+ // spread the data object to avoid mutation
674
+ data = _objectSpread(_objectSpread({}, data), {}, {
675
+ feedbackId: (0, _uuid.v4)()
676
+ });
677
+ }
678
+ return _context10.abrupt("return", (0, _Utils.uploadLogs)(data));
679
+ case 3:
680
+ case "end":
681
+ return _context10.stop();
682
+ }
683
+ }, _callee10);
684
+ }));
685
+ function uploadLogs() {
686
+ return _uploadLogs2.apply(this, arguments);
687
+ }
688
+ return uploadLogs;
689
+ }())
611
690
  }]);
612
691
  return CallingClient;
613
692
  }(_impl.Eventing);
@@ -617,21 +696,21 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
617
696
  * @param config - Config to start the CallingClient with.
618
697
  */
619
698
  var createClient = exports.createClient = /*#__PURE__*/function () {
620
- var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(webex, config) {
699
+ var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(webex, config) {
621
700
  var callingClientInstance;
622
- return _regenerator.default.wrap(function _callee10$(_context10) {
623
- while (1) switch (_context10.prev = _context10.next) {
701
+ return _regenerator.default.wrap(function _callee11$(_context11) {
702
+ while (1) switch (_context11.prev = _context11.next) {
624
703
  case 0:
625
704
  callingClientInstance = new CallingClient(webex, config);
626
- _context10.next = 3;
705
+ _context11.next = 3;
627
706
  return callingClientInstance.init();
628
707
  case 3:
629
- return _context10.abrupt("return", callingClientInstance);
708
+ return _context11.abrupt("return", callingClientInstance);
630
709
  case 4:
631
710
  case "end":
632
- return _context10.stop();
711
+ return _context11.stop();
633
712
  }
634
- }, _callee10);
713
+ }, _callee11);
635
714
  }));
636
715
  return function createClient(_x2, _x3) {
637
716
  return _ref5.apply(this, arguments);
@@ -1 +1 @@
1
- {"version":3,"names":["Media","_interopRequireWildcard","require","_asyncMutex","_Utils","_types","_SDKConnector","_interopRequireDefault","_impl","_types2","_types3","_Logger","_callManager","_constants","_line","_types4","_Metrics","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","F","s","done","value","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","return","minLen","_arrayLikeToArray","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","valueOf","CallingClient","exports","_Eventing","_inherits2","_super","webex","config","_this$sdkConfig","_this$sdkConfig$servi","_this$sdkConfig2","_this$sdkConfig2$logg","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_asyncToGenerator2","_regenerator","mark","_callee2","registration","wrap","_callee2$","_context2","prev","_values","lineDict","isDeviceRegistered","mutex","runExclusive","_callee","_callee$","_context","isReconnectPending","log","file","CALLING_CLIENT_FILE","method","CALLS_CLEARED_HANDLER_UTIL","reconnectOnFailure","stop","sdkConnector","SDKConnector","getWebex","setWebex","Mutex","sdkConfig","serviceData","indicator","ServiceIndicator","CALLING","domain","logLevel","logger","level","LOGGER","ERROR","setLogger","validateServiceData","callManager","getCallManager","metricManager","getMetricManager","mediaEngine","primaryMobiusUris","backupMobiusUris","mobiusServiceHost","URL","internal","services","_serviceUrls","mobius","host","error","warn","mobiusClusters","_hostCatalog","MOBIUS_US_PROD","MOBIUS_EU_PROD","MOBIUS_US_INT","MOBIUS_EU_INT","mobiusHost","registerSessionsListener","registerCallsClearedListener","_createClass2","key","_init","_callee3","_callee3$","_context3","getMobiusServers","createLine","detectNetworkChange","init","_detectNetworkChange","_callee5","_this2","retry","line","_callee5$","_context5","setInterval","_callee4","_callee4$","_context4","mercury","connected","_keys","getActiveCalls","clearKeepaliveTimer","getStatus","RegistrationStatus","IDLE","handleConnectionRestoration","sent","NETWORK_FLAP_TIMEOUT","_getClientRegionInfo","_callee6","_this3","regionInfo","_iterator","_step","temp","myIP","response","clientRegionInfo","_callee6$","_context6","concat","API_V1","request","uri","URL_ENDPOINT","IP_ENDPOINT","HTTP_METHODS","GET","headers","CISCO_DEVICE_URL","device","url","SPARK_USER_AGENT","CALLING_USER_AGENT","service","ALLOWED_SERVICES","MOBIUS","body","ipv4","DISCOVERY_URL","addAuthHeader","clientRegion","countryCode","abrupt","t0","handleCallingClientErrors","clientError","submitRegistrationMetric","METRIC_EVENT","REGISTRATION_ERROR","REG_ACTION","REGISTER","METRIC_TYPE","BEHAVIORAL","emit","CALLING_CLIENT_EVENT_KEYS","GET_MOBIUS_SERVERS_UTIL","t1","finish","getClientRegionInfo","_getMobiusServers","_callee7","_this$sdkConfig3","_this$sdkConfig3$disc","_this$sdkConfig4","_this$sdkConfig4$disc","_this4","useDefault","_this$sdkConfig5","_this$sdkConfig5$disc","_this$sdkConfig6","_this$sdkConfig6$disc","mobiusServers","mobiusUris","_callee7$","_context7","discovery","country","region","info","filterMobiusUris","primary","backup","logContext","on","ALL_CALLS_CLEARED","callsClearedHandler","getLoggingLevel","getLogLevel","getSDKConnector","_this5","registerListener","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","_ref4","_callee8","event","sessionArr","_callee8$","_context8","data","userSessions","sessionType","SessionType","WEBEX_CALLING","splice","USER_SESSION_INFO","_x","_createLine","_callee9","_this$sdkConfig7","_this$sdkConfig8","_callee9$","_context9","Line","userId","jwe","lineId","getLines","activeCalls","calls","forEach","correlationId","push","getConnectedCall","connectCall","isConnected","isHeld","Eventing","createClient","_ref5","_callee10","callingClientInstance","_callee10$","_context10","_x2","_x3"],"sources":["CallingClient.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport * as Media from '@webex/internal-media-core';\nimport {Mutex} from 'async-mutex';\nimport {filterMobiusUris, handleCallingClientErrors, validateServiceData} from '../common/Utils';\nimport {LOGGER, LogContext} from '../Logger/types';\nimport SDKConnector from '../SDKConnector';\nimport {ClientRegionInfo, ISDKConnector, ServiceHost, WebexSDK} from '../SDKConnector/types';\nimport {Eventing} from '../Events/impl';\nimport {\n CallingClientEventTypes,\n MOBIUS_EVENT_KEYS,\n CallSessionEvent,\n SessionType,\n CALLING_CLIENT_EVENT_KEYS,\n} from '../Events/types';\nimport {\n ServiceIndicator,\n RegionInfo,\n ALLOWED_SERVICES,\n HTTP_METHODS,\n IpInfo,\n MobiusServers,\n WebexRequestPayload,\n RegistrationStatus,\n} from '../common/types';\nimport {ICallingClient, CallingClientConfig} from './types';\nimport {ICall, ICallManager} from './calling/types';\nimport log from '../Logger';\nimport {getCallManager} from './calling/callManager';\nimport {\n CALLING_CLIENT_FILE,\n CALLS_CLEARED_HANDLER_UTIL,\n CALLING_USER_AGENT,\n CISCO_DEVICE_URL,\n DISCOVERY_URL,\n GET_MOBIUS_SERVERS_UTIL,\n IP_ENDPOINT,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n NETWORK_FLAP_TIMEOUT,\n API_V1,\n MOBIUS_US_PROD,\n MOBIUS_EU_PROD,\n MOBIUS_US_INT,\n MOBIUS_EU_INT,\n} from './constants';\nimport Line from './line';\nimport {ILine} from './line/types';\nimport {METRIC_EVENT, REG_ACTION, METRIC_TYPE, IMetricManager} from '../Metrics/types';\nimport {getMetricManager} from '../Metrics';\n\n/**\n * The `CallingClient` module provides a set of APIs for line registration and calling functionalities within the SDK.\n *\n * The following code snippet demonstrates how to create an instance of `CallingClient` using a `webex` instance and `callingConfig`:\n *\n * @example\n * ```javascript\n * const callingClient = createClient(webex, callingConfig);\n * ```\n */\n\nexport class CallingClient extends Eventing<CallingClientEventTypes> implements ICallingClient {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private mutex: Mutex;\n\n private callManager: ICallManager;\n\n private metricManager: IMetricManager;\n\n private sdkConfig?: CallingClientConfig;\n\n private primaryMobiusUris: string[];\n\n private backupMobiusUris: string[];\n\n private mobiusClusters: ServiceHost[];\n\n private mobiusHost: string;\n\n public mediaEngine: typeof Media;\n\n private lineDict: Record<string, ILine> = {};\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, config?: CallingClientConfig) {\n super();\n this.sdkConnector = SDKConnector;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.mutex = new Mutex();\n this.webex = this.sdkConnector.getWebex();\n\n this.sdkConfig = config;\n const serviceData = this.sdkConfig?.serviceData?.indicator\n ? this.sdkConfig.serviceData\n : {indicator: ServiceIndicator.CALLING, domain: ''};\n\n const logLevel = this.sdkConfig?.logger?.level ? this.sdkConfig.logger.level : LOGGER.ERROR;\n log.setLogger(logLevel, CALLING_CLIENT_FILE);\n validateServiceData(serviceData);\n\n this.callManager = getCallManager(this.webex, serviceData.indicator);\n this.metricManager = getMetricManager(this.webex, serviceData.indicator);\n\n this.mediaEngine = Media;\n\n this.primaryMobiusUris = [];\n this.backupMobiusUris = [];\n let mobiusServiceHost = '';\n try {\n mobiusServiceHost = new URL(this.webex.internal.services._serviceUrls.mobius).host;\n } catch (error) {\n log.warn(`Failed to parse mobius service URL`, {\n file: CALLING_CLIENT_FILE,\n method: this.constructor.name,\n });\n }\n\n this.mobiusClusters =\n (mobiusServiceHost && this.webex.internal.services._hostCatalog[mobiusServiceHost]) ||\n this.webex.internal.services._hostCatalog[MOBIUS_US_PROD] ||\n this.webex.internal.services._hostCatalog[MOBIUS_EU_PROD] ||\n this.webex.internal.services._hostCatalog[MOBIUS_US_INT] ||\n this.webex.internal.services._hostCatalog[MOBIUS_EU_INT];\n this.mobiusHost = '';\n\n this.registerSessionsListener();\n\n this.registerCallsClearedListener();\n }\n\n // async calls required to run after constructor\n\n /**\n * Initializes the `CallingClient` by performing the following steps:\n *\n * 1. Retrieves list of servers.\n * 2. Creates a line.\n * 3. Sets up network change detection.\n *\n * This method should be called once to initialize the `callingClient`.\n *\n * @returns A promise that resolves when the initialization is complete.\n * @ignore\n */\n public async init() {\n await this.getMobiusServers();\n await this.createLine();\n\n /* Better to run the timer once rather than after every registration */\n this.detectNetworkChange();\n }\n\n /**\n * Register callbacks for network changes.\n */\n private async detectNetworkChange() {\n let retry = false;\n\n // this is a temporary logic to get registration obj\n // it will change once we have proper lineId and multiple lines as well\n const line = Object.values(this.lineDict)[0];\n\n setInterval(async () => {\n if (\n !this.webex.internal.mercury.connected &&\n !retry &&\n !Object.keys(this.callManager.getActiveCalls()).length\n ) {\n log.warn(`Network has flapped, waiting for mercury connection to be up`, {\n file: CALLING_CLIENT_FILE,\n method: this.detectNetworkChange.name,\n });\n\n line.registration.clearKeepaliveTimer();\n\n retry = true;\n }\n\n if (retry && this.webex.internal.mercury.connected) {\n if (line.getStatus() !== RegistrationStatus.IDLE) {\n retry = await line.registration.handleConnectionRestoration(retry);\n } else {\n retry = false;\n }\n }\n }, NETWORK_FLAP_TIMEOUT);\n }\n\n /**\n * Fetches countryCode and region of the client.\n */\n private async getClientRegionInfo(): Promise<RegionInfo> {\n const regionInfo = {} as RegionInfo;\n\n for (const mobius of this.mobiusClusters) {\n this.mobiusHost = `https://${mobius.host}${API_V1}`;\n\n try {\n // eslint-disable-next-line no-await-in-loop\n const temp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.mobiusHost}${URL_ENDPOINT}${IP_ENDPOINT}`,\n method: HTTP_METHODS.GET,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n service: ALLOWED_SERVICES.MOBIUS,\n });\n\n const myIP = (temp.body as IpInfo).ipv4;\n // eslint-disable-next-line no-await-in-loop\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${DISCOVERY_URL}/${myIP}`,\n method: HTTP_METHODS.GET,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n const clientRegionInfo = response.body as ClientRegionInfo;\n\n regionInfo.clientRegion = clientRegionInfo?.clientRegion\n ? clientRegionInfo.clientRegion\n : '';\n\n regionInfo.countryCode = clientRegionInfo?.countryCode ? clientRegionInfo.countryCode : '';\n break;\n } catch (err: unknown) {\n handleCallingClientErrors(\n err as WebexRequestPayload,\n (clientError) => {\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n this.emit(CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);\n },\n {method: GET_MOBIUS_SERVERS_UTIL, file: CALLING_CLIENT_FILE}\n );\n regionInfo.clientRegion = '';\n regionInfo.countryCode = '';\n }\n }\n\n return regionInfo;\n }\n\n /**\n * Local method for finding the mobius servers.\n */\n private async getMobiusServers() {\n /* Following operations are performed in a synchronous way ->\n\n 1. Get RegionInfo\n 2. Get Mobius Server with that RegionInfo\n 3. Check whether Mobius server was found without any error\n 4. If there is error , we don't need to send registration\n 5. Otherwise send registration\n */\n\n let useDefault = false;\n\n let clientRegion: string;\n let countryCode: string;\n\n if (this.sdkConfig?.discovery?.country && this.sdkConfig?.discovery?.region) {\n log.info('Updating region and country from the SDK config', {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n });\n clientRegion = this.sdkConfig?.discovery?.region;\n countryCode = this.sdkConfig?.discovery?.country;\n this.mobiusHost = this.webex.internal.services._serviceUrls.mobius;\n } else {\n log.info('Updating region and country through Region discovery', {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n });\n\n const regionInfo = await this.getClientRegionInfo();\n\n clientRegion = regionInfo.clientRegion;\n countryCode = regionInfo.countryCode;\n }\n\n if (clientRegion && countryCode) {\n log.log(\n `Found Region: ${clientRegion} and country: ${countryCode}, going to fetch Mobius server`,\n '' as LogContext\n );\n\n try {\n // eslint-disable-next-line no-await-in-loop\n const temp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.mobiusHost}${URL_ENDPOINT}?regionCode=${clientRegion}&countryCode=${countryCode}`,\n method: HTTP_METHODS.GET,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n service: ALLOWED_SERVICES.MOBIUS,\n });\n\n log.log('Mobius Server found for the region', '' as LogContext);\n const mobiusServers = temp.body as MobiusServers;\n\n /* update arrays of Mobius Uris. */\n const mobiusUris = filterMobiusUris(mobiusServers, this.mobiusHost);\n this.primaryMobiusUris = mobiusUris.primary;\n this.backupMobiusUris = mobiusUris.backup;\n log.info(\n `Final list of Mobius Servers, primary: ${mobiusUris.primary} and backup: ${mobiusUris.backup}`,\n '' as LogContext\n );\n } catch (err: unknown) {\n handleCallingClientErrors(\n err as WebexRequestPayload,\n (clientError) => {\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n this.emit(CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);\n },\n {method: GET_MOBIUS_SERVERS_UTIL, file: CALLING_CLIENT_FILE}\n );\n\n useDefault = true;\n }\n } else {\n /* Setting this to true because region info is possibly undefined */\n useDefault = true;\n }\n\n /* Use a default URL if Mobius discovery fails either because of region info failure\n * or because the discovered Mobius couldn't be reached\n */\n\n if (useDefault) {\n log.warn(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n '' as LogContext\n );\n this.mobiusHost = `https://${this.mobiusClusters[0].host}${API_V1}`;\n this.primaryMobiusUris = [`${this.mobiusHost}${URL_ENDPOINT}`];\n }\n }\n\n /**\n * Registers a listener/handler for ALL_CALLS_CLEARED\n * event emitted by callManager when all the calls\n * present on sdk are cleaned up.\n */\n private registerCallsClearedListener() {\n const logContext = {\n file: CALLING_CLIENT_FILE,\n method: this.registerCallsClearedListener.name,\n };\n\n log.log('Registering listener for all calls cleared event', logContext);\n this.callManager.on(CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED, this.callsClearedHandler);\n }\n\n /**\n * Handler registered for ALL_CALLS_CLEARED event emitted by callManager.\n *\n * If re-register attempt was deferred earlier due to active call(s), then it\n * will be attempted here on receiving a notification from callManager that all\n * calls are cleaned up.\n */\n private callsClearedHandler = async () => {\n // this is a temporary logic to get registration obj\n // it will change once we have proper lineId and multiple lines as well\n const {registration} = Object.values(this.lineDict)[0];\n\n if (!registration.isDeviceRegistered()) {\n await this.mutex.runExclusive(async () => {\n if (registration.isReconnectPending()) {\n log.log('All calls cleared, reconnecting', {\n file: CALLING_CLIENT_FILE,\n method: CALLS_CLEARED_HANDLER_UTIL,\n });\n await registration.reconnectOnFailure(CALLS_CLEARED_HANDLER_UTIL);\n }\n });\n }\n };\n\n /**\n * To get the current log Level.\n * @ignore\n */\n public getLoggingLevel(): LOGGER {\n return log.getLogLevel();\n }\n\n /**\n * To return the `sdkConnector` instance that was used during sdk initialisation.\n * @ignore\n */\n public getSDKConnector(): ISDKConnector {\n return this.sdkConnector;\n }\n\n private registerSessionsListener() {\n this.sdkConnector.registerListener<CallSessionEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n async (event?: CallSessionEvent) => {\n if (event && event.data.userSessions.userSessions) {\n const sessionArr = event?.data.userSessions.userSessions;\n\n if (sessionArr.length === 1) {\n if (sessionArr[0].sessionType !== SessionType.WEBEX_CALLING) {\n return;\n }\n }\n\n for (let i = 0; i < sessionArr.length; i += 1) {\n if (sessionArr[i].sessionType !== SessionType.WEBEX_CALLING) {\n sessionArr.splice(i, 1);\n }\n }\n this.emit(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, event as CallSessionEvent);\n }\n }\n );\n }\n\n /**\n * Creates line object inside calling client per user\n * NOTE: currently multiple lines are not supported\n */\n private async createLine(): Promise<void> {\n const line = new Line(\n this.webex.internal.device.userId,\n this.webex.internal.device.url,\n this.mutex,\n this.primaryMobiusUris,\n this.backupMobiusUris,\n this.getLoggingLevel(),\n this.sdkConfig?.serviceData,\n this.sdkConfig?.jwe\n );\n\n this.lineDict[line.lineId] = line;\n }\n\n /**\n * Retrieves details of all the Line objects belonging to a User\n * NOTE: currently multiple lines are not supported\n */\n public getLines(): Record<string, ILine> {\n return this.lineDict;\n }\n\n /**\n * Retrieves call objects for all the active calls present in the client\n */\n public getActiveCalls(): Record<string, ICall[]> {\n const activeCalls = {};\n const calls = this.callManager.getActiveCalls();\n Object.keys(calls).forEach((correlationId) => {\n const call = calls[correlationId];\n if (!activeCalls[call.lineId]) {\n activeCalls[call.lineId] = [];\n }\n activeCalls[call.lineId].push(call);\n });\n\n return activeCalls;\n }\n\n /**\n * Retrieves call object for the connected call in the client\n */\n public getConnectedCall(): ICall | undefined {\n let connectCall;\n const calls = this.callManager.getActiveCalls();\n\n Object.keys(calls).forEach((correlationId) => {\n if (calls[correlationId].isConnected() && !calls[correlationId].isHeld()) {\n connectCall = calls[correlationId];\n }\n });\n\n return connectCall;\n }\n}\n\n/**\n * Create the `CallingClient` instance using the `webex` object and callingSdk `config`\n * @param webex - A webex instance.\n * @param config - Config to start the CallingClient with.\n */\nexport const createClient = async (\n webex: WebexSDK,\n config?: CallingClientConfig\n): Promise<ICallingClient> => {\n const callingClientInstance = new CallingClient(webex, config);\n await callingClientInstance.init();\n\n return callingClientInstance;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["Media","_interopRequireWildcard","require","_asyncMutex","_uuid","_Utils","_types","_SDKConnector","_interopRequireDefault","_impl","_types2","_types3","_Logger","_callManager","_constants","_line","_types4","_Metrics","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","ownKeys","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_createForOfIteratorHelper","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","F","s","done","value","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","return","minLen","_arrayLikeToArray","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","valueOf","CallingClient","exports","_Eventing","_inherits2","_super","webex","config","_this$sdkConfig","_this$sdkConfig$servi","_this$sdkConfig2","_this$sdkConfig2$logg","_this","_classCallCheck2","_assertThisInitialized2","_asyncToGenerator2","_regenerator","mark","_callee2","registration","wrap","_callee2$","_context2","prev","_values","lineDict","isDeviceRegistered","mutex","runExclusive","_callee","_callee$","_context","isReconnectPending","log","file","CALLING_CLIENT_FILE","method","CALLS_CLEARED_HANDLER_UTIL","reconnectOnFailure","stop","sdkConnector","SDKConnector","getWebex","setWebex","Mutex","sdkConfig","serviceData","indicator","ServiceIndicator","CALLING","domain","logLevel","logger","level","LOGGER","ERROR","setLogger","validateServiceData","callManager","getCallManager","metricManager","getMetricManager","mediaEngine","adaptedLogger","_len","args","_key","join","error","_len2","_key2","warn","_len3","_key3","info","_len4","_key4","trace","_len5","_key5","debug","_len6","_key6","primaryMobiusUris","backupMobiusUris","mobiusServiceHost","URL","internal","services","_serviceUrls","mobius","host","mobiusClusters","_hostCatalog","MOBIUS_US_PROD","MOBIUS_EU_PROD","MOBIUS_US_INT","MOBIUS_EU_INT","mobiusHost","registerSessionsListener","registerCallsClearedListener","_createClass2","key","_init","_callee3","_callee3$","_context3","getMobiusServers","createLine","detectNetworkChange","init","_detectNetworkChange","_callee5","_this2","retry","line","_callee5$","_context5","setInterval","_callee4","_callee4$","_context4","mercury","connected","_keys","getActiveCalls","clearKeepaliveTimer","getStatus","RegistrationStatus","IDLE","handleConnectionRestoration","sent","NETWORK_FLAP_TIMEOUT","_getClientRegionInfo","_callee6","_this3","regionInfo","_iterator","_step","temp","myIP","response","clientRegionInfo","_callee6$","_context6","concat","API_V1","request","uri","URL_ENDPOINT","IP_ENDPOINT","HTTP_METHODS","GET","headers","CISCO_DEVICE_URL","device","url","SPARK_USER_AGENT","CALLING_USER_AGENT","service","ALLOWED_SERVICES","MOBIUS","body","ipv4","DISCOVERY_URL","addAuthHeader","clientRegion","countryCode","abrupt","t0","handleCallingClientErrors","clientError","submitRegistrationMetric","METRIC_EVENT","REGISTRATION_ERROR","REG_ACTION","REGISTER","METRIC_TYPE","BEHAVIORAL","emit","CALLING_CLIENT_EVENT_KEYS","GET_MOBIUS_SERVERS_UTIL","t1","finish","getClientRegionInfo","_getMobiusServers","_callee7","_this$sdkConfig3","_this$sdkConfig3$disc","_this$sdkConfig4","_this$sdkConfig4$disc","_this4","useDefault","_this$sdkConfig5","_this$sdkConfig5$disc","_this$sdkConfig6","_this$sdkConfig6$disc","mobiusServers","mobiusUris","_callee7$","_context7","discovery","country","region","filterMobiusUris","primary","backup","logContext","on","ALL_CALLS_CLEARED","callsClearedHandler","getLoggingLevel","getLogLevel","getSDKConnector","_this5","registerListener","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","_ref4","_callee8","event","sessionArr","_callee8$","_context8","data","userSessions","sessionType","SessionType","WEBEX_CALLING","splice","USER_SESSION_INFO","_x","_createLine","_callee9","_this$sdkConfig7","_this$sdkConfig8","_callee9$","_context9","Line","userId","jwe","lineId","getLines","activeCalls","calls","correlationId","getConnectedCall","connectCall","isConnected","isHeld","_uploadLogs2","_callee10","_args10","_callee10$","_context10","undefined","feedbackId","uuid","uploadLogs","Eventing","createClient","_ref5","_callee11","callingClientInstance","_callee11$","_context11","_x2","_x3"],"sources":["CallingClient.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport * as Media from '@webex/internal-media-core';\nimport {Mutex} from 'async-mutex';\nimport {v4 as uuid} from 'uuid';\nimport {\n filterMobiusUris,\n handleCallingClientErrors,\n uploadLogs,\n validateServiceData,\n} from '../common/Utils';\nimport {LOGGER, LogContext} from '../Logger/types';\nimport SDKConnector from '../SDKConnector';\nimport {ClientRegionInfo, ISDKConnector, ServiceHost, WebexSDK} from '../SDKConnector/types';\nimport {Eventing} from '../Events/impl';\nimport {\n CallingClientEventTypes,\n MOBIUS_EVENT_KEYS,\n CallSessionEvent,\n SessionType,\n CALLING_CLIENT_EVENT_KEYS,\n} from '../Events/types';\nimport {\n ServiceIndicator,\n RegionInfo,\n ALLOWED_SERVICES,\n HTTP_METHODS,\n IpInfo,\n MobiusServers,\n WebexRequestPayload,\n RegistrationStatus,\n} from '../common/types';\nimport {ICallingClient, CallingClientConfig} from './types';\nimport {ICall, ICallManager} from './calling/types';\nimport log from '../Logger';\nimport {getCallManager} from './calling/callManager';\nimport {\n CALLING_CLIENT_FILE,\n CALLS_CLEARED_HANDLER_UTIL,\n CALLING_USER_AGENT,\n CISCO_DEVICE_URL,\n DISCOVERY_URL,\n GET_MOBIUS_SERVERS_UTIL,\n IP_ENDPOINT,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n NETWORK_FLAP_TIMEOUT,\n API_V1,\n MOBIUS_US_PROD,\n MOBIUS_EU_PROD,\n MOBIUS_US_INT,\n MOBIUS_EU_INT,\n} from './constants';\nimport Line from './line';\nimport {ILine} from './line/types';\nimport {METRIC_EVENT, REG_ACTION, METRIC_TYPE, IMetricManager} from '../Metrics/types';\nimport {getMetricManager} from '../Metrics';\n\n/**\n * The `CallingClient` module provides a set of APIs for line registration and calling functionalities within the SDK.\n *\n * The following code snippet demonstrates how to create an instance of `CallingClient` using a `webex` instance and `callingConfig`:\n *\n * @example\n * ```javascript\n * const callingClient = createClient(webex, callingConfig);\n * ```\n */\n\nexport class CallingClient extends Eventing<CallingClientEventTypes> implements ICallingClient {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private mutex: Mutex;\n\n private callManager: ICallManager;\n\n private metricManager: IMetricManager;\n\n private sdkConfig?: CallingClientConfig;\n\n private primaryMobiusUris: string[];\n\n private backupMobiusUris: string[];\n\n private mobiusClusters: ServiceHost[];\n\n private mobiusHost: string;\n\n public mediaEngine: typeof Media;\n\n private lineDict: Record<string, ILine> = {};\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, config?: CallingClientConfig) {\n super();\n this.sdkConnector = SDKConnector;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.mutex = new Mutex();\n this.webex = this.sdkConnector.getWebex();\n\n this.sdkConfig = config;\n const serviceData = this.sdkConfig?.serviceData?.indicator\n ? this.sdkConfig.serviceData\n : {indicator: ServiceIndicator.CALLING, domain: ''};\n\n const logLevel = this.sdkConfig?.logger?.level ? this.sdkConfig.logger.level : LOGGER.ERROR;\n log.setLogger(logLevel, CALLING_CLIENT_FILE);\n validateServiceData(serviceData);\n\n this.callManager = getCallManager(this.webex, serviceData.indicator);\n this.metricManager = getMetricManager(this.webex, serviceData.indicator);\n\n this.mediaEngine = Media;\n\n const adaptedLogger: Media.Logger = {\n log: (...args) => webex.logger.log(args.join(' : ')),\n error: (...args) => webex.logger.error(args.join(' : ')),\n warn: (...args) => webex.logger.warn(args.join(' : ')),\n info: (...args) => webex.logger.info(args.join(' : ')),\n trace: (...args) => webex.logger.trace(args.join(' : ')),\n debug: (...args) => webex.logger.debug(args.join(' : ')),\n };\n\n this.mediaEngine.setLogger(adaptedLogger);\n\n this.primaryMobiusUris = [];\n this.backupMobiusUris = [];\n let mobiusServiceHost = '';\n try {\n mobiusServiceHost = new URL(this.webex.internal.services._serviceUrls.mobius).host;\n } catch (error) {\n log.warn(`Failed to parse mobius service URL`, {\n file: CALLING_CLIENT_FILE,\n method: this.constructor.name,\n });\n }\n\n this.mobiusClusters =\n (mobiusServiceHost && this.webex.internal.services._hostCatalog[mobiusServiceHost]) ||\n this.webex.internal.services._hostCatalog[MOBIUS_US_PROD] ||\n this.webex.internal.services._hostCatalog[MOBIUS_EU_PROD] ||\n this.webex.internal.services._hostCatalog[MOBIUS_US_INT] ||\n this.webex.internal.services._hostCatalog[MOBIUS_EU_INT];\n this.mobiusHost = '';\n\n this.registerSessionsListener();\n\n this.registerCallsClearedListener();\n }\n\n // async calls required to run after constructor\n\n /**\n * Initializes the `CallingClient` by performing the following steps:\n *\n * 1. Retrieves list of servers.\n * 2. Creates a line.\n * 3. Sets up network change detection.\n *\n * This method should be called once to initialize the `callingClient`.\n *\n * @returns A promise that resolves when the initialization is complete.\n * @ignore\n */\n public async init() {\n await this.getMobiusServers();\n await this.createLine();\n\n /* Better to run the timer once rather than after every registration */\n this.detectNetworkChange();\n }\n\n /**\n * Register callbacks for network changes.\n */\n private async detectNetworkChange() {\n let retry = false;\n\n // this is a temporary logic to get registration obj\n // it will change once we have proper lineId and multiple lines as well\n const line = Object.values(this.lineDict)[0];\n\n setInterval(async () => {\n if (\n !this.webex.internal.mercury.connected &&\n !retry &&\n !Object.keys(this.callManager.getActiveCalls()).length\n ) {\n log.warn(`Network has flapped, waiting for mercury connection to be up`, {\n file: CALLING_CLIENT_FILE,\n method: this.detectNetworkChange.name,\n });\n\n line.registration.clearKeepaliveTimer();\n\n retry = true;\n }\n\n if (retry && this.webex.internal.mercury.connected) {\n if (line.getStatus() !== RegistrationStatus.IDLE) {\n retry = await line.registration.handleConnectionRestoration(retry);\n } else {\n retry = false;\n }\n }\n }, NETWORK_FLAP_TIMEOUT);\n }\n\n /**\n * Fetches countryCode and region of the client.\n */\n private async getClientRegionInfo(): Promise<RegionInfo> {\n const regionInfo = {} as RegionInfo;\n\n for (const mobius of this.mobiusClusters) {\n this.mobiusHost = `https://${mobius.host}${API_V1}`;\n\n try {\n // eslint-disable-next-line no-await-in-loop\n const temp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.mobiusHost}${URL_ENDPOINT}${IP_ENDPOINT}`,\n method: HTTP_METHODS.GET,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n service: ALLOWED_SERVICES.MOBIUS,\n });\n\n const myIP = (temp.body as IpInfo).ipv4;\n // eslint-disable-next-line no-await-in-loop\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${DISCOVERY_URL}/${myIP}`,\n method: HTTP_METHODS.GET,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n const clientRegionInfo = response.body as ClientRegionInfo;\n\n regionInfo.clientRegion = clientRegionInfo?.clientRegion\n ? clientRegionInfo.clientRegion\n : '';\n\n regionInfo.countryCode = clientRegionInfo?.countryCode ? clientRegionInfo.countryCode : '';\n break;\n } catch (err: unknown) {\n handleCallingClientErrors(\n err as WebexRequestPayload,\n (clientError) => {\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n this.emit(CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);\n },\n {method: GET_MOBIUS_SERVERS_UTIL, file: CALLING_CLIENT_FILE}\n );\n regionInfo.clientRegion = '';\n regionInfo.countryCode = '';\n }\n }\n\n return regionInfo;\n }\n\n /**\n * Local method for finding the mobius servers.\n */\n private async getMobiusServers() {\n /* Following operations are performed in a synchronous way ->\n\n 1. Get RegionInfo\n 2. Get Mobius Server with that RegionInfo\n 3. Check whether Mobius server was found without any error\n 4. If there is error , we don't need to send registration\n 5. Otherwise send registration\n */\n\n let useDefault = false;\n\n let clientRegion: string;\n let countryCode: string;\n\n if (this.sdkConfig?.discovery?.country && this.sdkConfig?.discovery?.region) {\n log.info('Updating region and country from the SDK config', {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n });\n clientRegion = this.sdkConfig?.discovery?.region;\n countryCode = this.sdkConfig?.discovery?.country;\n this.mobiusHost = this.webex.internal.services._serviceUrls.mobius;\n } else {\n log.info('Updating region and country through Region discovery', {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n });\n\n const regionInfo = await this.getClientRegionInfo();\n\n clientRegion = regionInfo.clientRegion;\n countryCode = regionInfo.countryCode;\n }\n\n if (clientRegion && countryCode) {\n log.log(\n `Found Region: ${clientRegion} and country: ${countryCode}, going to fetch Mobius server`,\n '' as LogContext\n );\n\n try {\n // eslint-disable-next-line no-await-in-loop\n const temp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.mobiusHost}${URL_ENDPOINT}?regionCode=${clientRegion}&countryCode=${countryCode}`,\n method: HTTP_METHODS.GET,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n service: ALLOWED_SERVICES.MOBIUS,\n });\n\n log.log('Mobius Server found for the region', '' as LogContext);\n const mobiusServers = temp.body as MobiusServers;\n\n /* update arrays of Mobius Uris. */\n const mobiusUris = filterMobiusUris(mobiusServers, this.mobiusHost);\n this.primaryMobiusUris = mobiusUris.primary;\n this.backupMobiusUris = mobiusUris.backup;\n log.info(\n `Final list of Mobius Servers, primary: ${mobiusUris.primary} and backup: ${mobiusUris.backup}`,\n '' as LogContext\n );\n } catch (err: unknown) {\n handleCallingClientErrors(\n err as WebexRequestPayload,\n (clientError) => {\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n this.emit(CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);\n },\n {method: GET_MOBIUS_SERVERS_UTIL, file: CALLING_CLIENT_FILE}\n );\n\n useDefault = true;\n }\n } else {\n /* Setting this to true because region info is possibly undefined */\n useDefault = true;\n }\n\n /* Use a default URL if Mobius discovery fails either because of region info failure\n * or because the discovered Mobius couldn't be reached\n */\n\n if (useDefault) {\n log.warn(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n '' as LogContext\n );\n this.mobiusHost = `https://${this.mobiusClusters[0].host}${API_V1}`;\n this.primaryMobiusUris = [`${this.mobiusHost}${URL_ENDPOINT}`];\n }\n }\n\n /**\n * Registers a listener/handler for ALL_CALLS_CLEARED\n * event emitted by callManager when all the calls\n * present on sdk are cleaned up.\n */\n private registerCallsClearedListener() {\n const logContext = {\n file: CALLING_CLIENT_FILE,\n method: this.registerCallsClearedListener.name,\n };\n\n log.log('Registering listener for all calls cleared event', logContext);\n this.callManager.on(CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED, this.callsClearedHandler);\n }\n\n /**\n * Handler registered for ALL_CALLS_CLEARED event emitted by callManager.\n *\n * If re-register attempt was deferred earlier due to active call(s), then it\n * will be attempted here on receiving a notification from callManager that all\n * calls are cleaned up.\n */\n private callsClearedHandler = async () => {\n // this is a temporary logic to get registration obj\n // it will change once we have proper lineId and multiple lines as well\n const {registration} = Object.values(this.lineDict)[0];\n\n if (!registration.isDeviceRegistered()) {\n await this.mutex.runExclusive(async () => {\n if (registration.isReconnectPending()) {\n log.log('All calls cleared, reconnecting', {\n file: CALLING_CLIENT_FILE,\n method: CALLS_CLEARED_HANDLER_UTIL,\n });\n await registration.reconnectOnFailure(CALLS_CLEARED_HANDLER_UTIL);\n }\n });\n }\n };\n\n /**\n * To get the current log Level.\n * @ignore\n */\n public getLoggingLevel(): LOGGER {\n return log.getLogLevel();\n }\n\n /**\n * To return the `sdkConnector` instance that was used during sdk initialisation.\n * @ignore\n */\n public getSDKConnector(): ISDKConnector {\n return this.sdkConnector;\n }\n\n private registerSessionsListener() {\n this.sdkConnector.registerListener<CallSessionEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n async (event?: CallSessionEvent) => {\n if (event && event.data.userSessions.userSessions) {\n const sessionArr = event?.data.userSessions.userSessions;\n\n if (sessionArr.length === 1) {\n if (sessionArr[0].sessionType !== SessionType.WEBEX_CALLING) {\n return;\n }\n }\n\n for (let i = 0; i < sessionArr.length; i += 1) {\n if (sessionArr[i].sessionType !== SessionType.WEBEX_CALLING) {\n sessionArr.splice(i, 1);\n }\n }\n this.emit(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, event as CallSessionEvent);\n }\n }\n );\n }\n\n /**\n * Creates line object inside calling client per user\n * NOTE: currently multiple lines are not supported\n */\n private async createLine(): Promise<void> {\n const line = new Line(\n this.webex.internal.device.userId,\n this.webex.internal.device.url,\n this.mutex,\n this.primaryMobiusUris,\n this.backupMobiusUris,\n this.getLoggingLevel(),\n this.sdkConfig?.serviceData,\n this.sdkConfig?.jwe\n );\n\n this.lineDict[line.lineId] = line;\n }\n\n /**\n * Retrieves details of all the Line objects belonging to a User\n * NOTE: currently multiple lines are not supported\n */\n public getLines(): Record<string, ILine> {\n return this.lineDict;\n }\n\n /**\n * Retrieves call objects for all the active calls present in the client\n */\n public getActiveCalls(): Record<string, ICall[]> {\n const activeCalls = {};\n const calls = this.callManager.getActiveCalls();\n Object.keys(calls).forEach((correlationId) => {\n const call = calls[correlationId];\n if (!activeCalls[call.lineId]) {\n activeCalls[call.lineId] = [];\n }\n activeCalls[call.lineId].push(call);\n });\n\n return activeCalls;\n }\n\n /**\n * Retrieves call object for the connected call in the client\n */\n public getConnectedCall(): ICall | undefined {\n let connectCall;\n const calls = this.callManager.getActiveCalls();\n\n Object.keys(calls).forEach((correlationId) => {\n if (calls[correlationId].isConnected() && !calls[correlationId].isHeld()) {\n connectCall = calls[correlationId];\n }\n });\n\n return connectCall;\n }\n\n /**\n * uploads logs to backend for trouble shooting\n * @param data\n */\n public async uploadLogs(data: {feedbackId?: string} = {}) {\n if (!data.feedbackId) {\n // spread the data object to avoid mutation\n data = {...data, feedbackId: uuid()};\n }\n\n return uploadLogs(data);\n }\n}\n\n/**\n * Create the `CallingClient` instance using the `webex` object and callingSdk `config`\n * @param webex - A webex instance.\n * @param config - Config to start the CallingClient with.\n */\nexport const createClient = async (\n webex: WebexSDK,\n config?: CallingClientConfig\n): Promise<ICallingClient> => {\n const callingClientInstance = new CallingClient(webex, config);\n await callingClientInstance.init();\n\n return callingClientInstance;\n};\n"],"mappings":"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"}
@@ -16,6 +16,7 @@ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/pr
16
16
  var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
17
17
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
18
18
  var _asyncMutex = require("async-mutex");
19
+ var Media = _interopRequireWildcard(require("@webex/internal-media-core"));
19
20
  var _types = require("../Logger/types");
20
21
  var _testUtil = require("../common/testUtil");
21
22
  var _types2 = require("../common/types");
@@ -38,6 +39,7 @@ describe('CallingClient Tests', function () {
38
39
  // Common initializers
39
40
 
40
41
  var handleErrorSpy = jest.spyOn(utils, 'handleCallingClientErrors');
42
+ var setLoggerSpy = jest.spyOn(Media, 'setLogger');
41
43
  var webex = (0, _testUtil.getTestUtilsWebex)();
42
44
  webex.internal.services['_hostCatalog'] = _callingClientFixtures.mockCatalogUS;
43
45
  var defaultServiceIndicator = _types2.ServiceIndicator.CALLING;
@@ -98,8 +100,9 @@ describe('CallingClient Tests', function () {
98
100
  });
99
101
  case 4:
100
102
  callingClient = _context2.sent;
103
+ expect(setLoggerSpy).toHaveBeenCalledTimes(1);
101
104
  expect(callingClient['mobiusClusters']).toStrictEqual(_callingClientFixtures.mockUSServiceHosts);
102
- case 6:
105
+ case 7:
103
106
  case "end":
104
107
  return _context2.stop();
105
108
  }