@webex/calling 3.12.0-mobius-socket.5 → 3.12.0-mobius-socket.6
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.
- package/dist/CallingClient/CallingClient.js +49 -49
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +12 -4
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/module/CallingClient/CallingClient.js +5 -2
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -705,33 +705,31 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
|
705
705
|
5. Otherwise send registration
|
|
706
706
|
*/
|
|
707
707
|
useDefault = false;
|
|
708
|
-
if (
|
|
709
|
-
|
|
710
|
-
|
|
708
|
+
if ((_this$sdkConfig3 = this.sdkConfig) !== null && _this$sdkConfig3 !== void 0 && (_this$sdkConfig3$disc = _this$sdkConfig3.discovery) !== null && _this$sdkConfig3$disc !== void 0 && _this$sdkConfig3$disc.country && (_this$sdkConfig4 = this.sdkConfig) !== null && _this$sdkConfig4 !== void 0 && (_this$sdkConfig4$disc = _this$sdkConfig4.discovery) !== null && _this$sdkConfig4$disc !== void 0 && _this$sdkConfig4$disc.region) {
|
|
709
|
+
_Logger.default.log('Updating region and country from the SDK config', {
|
|
710
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
711
|
+
method: _constants2.GET_MOBIUS_SERVERS_UTIL
|
|
712
|
+
});
|
|
713
|
+
clientRegion = (_this$sdkConfig5 = this.sdkConfig) === null || _this$sdkConfig5 === void 0 ? void 0 : (_this$sdkConfig5$disc = _this$sdkConfig5.discovery) === null || _this$sdkConfig5$disc === void 0 ? void 0 : _this$sdkConfig5$disc.region;
|
|
714
|
+
countryCode = (_this$sdkConfig6 = this.sdkConfig) === null || _this$sdkConfig6 === void 0 ? void 0 : (_this$sdkConfig6$disc = _this$sdkConfig6.discovery) === null || _this$sdkConfig6$disc === void 0 ? void 0 : _this$sdkConfig6$disc.country;
|
|
715
|
+
this.mobiusHost = ((_this$webex$internal$ = this.webex.internal.services._serviceUrls) === null || _this$webex$internal$ === void 0 ? void 0 : _this$webex$internal$.mobius) || this.webex.internal.services.get(this.webex.internal.services._activeServices.mobius);
|
|
716
|
+
} else {
|
|
717
|
+
_Logger.default.log('Updating region and country through Region discovery', {
|
|
718
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
719
|
+
method: _constants2.GET_MOBIUS_SERVERS_UTIL
|
|
720
|
+
});
|
|
721
|
+
|
|
722
|
+
// MOBIUS TODO: Remove this later. Added for testing purposes.
|
|
723
|
+
// const regionInfo = await this.getClientRegionInfo();
|
|
724
|
+
regionInfo = {
|
|
725
|
+
clientRegion: 'US-EAST',
|
|
726
|
+
countryCode: 'WS-LOAD-TEST'
|
|
727
|
+
};
|
|
728
|
+
clientRegion = regionInfo.clientRegion;
|
|
729
|
+
countryCode = regionInfo.countryCode;
|
|
711
730
|
}
|
|
712
|
-
_Logger.default.log('Updating region and country from the SDK config', {
|
|
713
|
-
file: _constants2.CALLING_CLIENT_FILE,
|
|
714
|
-
method: _constants2.GET_MOBIUS_SERVERS_UTIL
|
|
715
|
-
});
|
|
716
|
-
clientRegion = (_this$sdkConfig5 = this.sdkConfig) === null || _this$sdkConfig5 === void 0 ? void 0 : (_this$sdkConfig5$disc = _this$sdkConfig5.discovery) === null || _this$sdkConfig5$disc === void 0 ? void 0 : _this$sdkConfig5$disc.region;
|
|
717
|
-
countryCode = (_this$sdkConfig6 = this.sdkConfig) === null || _this$sdkConfig6 === void 0 ? void 0 : (_this$sdkConfig6$disc = _this$sdkConfig6.discovery) === null || _this$sdkConfig6$disc === void 0 ? void 0 : _this$sdkConfig6$disc.country;
|
|
718
|
-
this.mobiusHost = ((_this$webex$internal$ = this.webex.internal.services._serviceUrls) === null || _this$webex$internal$ === void 0 ? void 0 : _this$webex$internal$.mobius) || this.webex.internal.services.get(this.webex.internal.services._activeServices.mobius);
|
|
719
|
-
_context11.next = 3;
|
|
720
|
-
break;
|
|
721
|
-
case 1:
|
|
722
|
-
_Logger.default.log('Updating region and country through Region discovery', {
|
|
723
|
-
file: _constants2.CALLING_CLIENT_FILE,
|
|
724
|
-
method: _constants2.GET_MOBIUS_SERVERS_UTIL
|
|
725
|
-
});
|
|
726
|
-
_context11.next = 2;
|
|
727
|
-
return this.getClientRegionInfo();
|
|
728
|
-
case 2:
|
|
729
|
-
regionInfo = _context11.sent;
|
|
730
|
-
clientRegion = regionInfo.clientRegion;
|
|
731
|
-
countryCode = regionInfo.countryCode;
|
|
732
|
-
case 3:
|
|
733
731
|
if (!(clientRegion && countryCode)) {
|
|
734
|
-
_context11.next =
|
|
732
|
+
_context11.next = 9;
|
|
735
733
|
break;
|
|
736
734
|
}
|
|
737
735
|
_Logger.default.log("Found Region: ".concat(clientRegion, " and country: ").concat(countryCode, ", going to fetch Mobius server"), {
|
|
@@ -739,7 +737,7 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
|
739
737
|
method: _constants2.GET_MOBIUS_SERVERS_UTIL
|
|
740
738
|
});
|
|
741
739
|
_iterator2 = _createForOfIteratorHelper(this.mobiusClusters);
|
|
742
|
-
_context11.prev =
|
|
740
|
+
_context11.prev = 1;
|
|
743
741
|
_loop2 = /*#__PURE__*/_regenerator.default.mark(function _loop2() {
|
|
744
742
|
var mobius, _response$headers3, _response$headers$tra2, _response$headers4, response, mobiusServers, mobiusUris, abort, _t5;
|
|
745
743
|
return _regenerator.default.wrap(function (_context10) {
|
|
@@ -754,7 +752,9 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
|
754
752
|
_context10.prev = 1;
|
|
755
753
|
_context10.next = 2;
|
|
756
754
|
return _this4.webex.request({
|
|
757
|
-
uri:
|
|
755
|
+
// uri: `${this.mobiusHost}${URL_ENDPOINT}?regionCode=${clientRegion}&countryCode=${countryCode}`,
|
|
756
|
+
// MOBIUS TODO: Remove this later. Added for testing purposes.
|
|
757
|
+
uri: 'https://mobius.aload-calling1.ciscospark.com/api/v1/calling/web/?regionCode=US-EAST&countryCode=WS-LOAD-TEST',
|
|
758
758
|
method: _types3.HTTP_METHODS.GET,
|
|
759
759
|
headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, _this4.webex.internal.device.url), _constants2.SPARK_USER_AGENT, _constants2.CALLING_USER_AGENT),
|
|
760
760
|
service: _types3.ALLOWED_SERVICES.MOBIUS
|
|
@@ -816,40 +816,40 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
|
816
816
|
}, _loop2, null, [[1, 3]]);
|
|
817
817
|
});
|
|
818
818
|
_iterator2.s();
|
|
819
|
-
case
|
|
819
|
+
case 2:
|
|
820
820
|
if ((_step2 = _iterator2.n()).done) {
|
|
821
|
-
_context11.next =
|
|
821
|
+
_context11.next = 5;
|
|
822
822
|
break;
|
|
823
823
|
}
|
|
824
|
-
return _context11.delegateYield(_loop2(), "t0",
|
|
825
|
-
case
|
|
824
|
+
return _context11.delegateYield(_loop2(), "t0", 3);
|
|
825
|
+
case 3:
|
|
826
826
|
_ret = _context11.t0;
|
|
827
827
|
if (!(_ret === 0)) {
|
|
828
|
-
_context11.next =
|
|
828
|
+
_context11.next = 4;
|
|
829
829
|
break;
|
|
830
830
|
}
|
|
831
|
-
return _context11.abrupt("continue",
|
|
832
|
-
case
|
|
833
|
-
_context11.next =
|
|
831
|
+
return _context11.abrupt("continue", 5);
|
|
832
|
+
case 4:
|
|
833
|
+
_context11.next = 2;
|
|
834
834
|
break;
|
|
835
|
-
case
|
|
836
|
-
_context11.next =
|
|
835
|
+
case 5:
|
|
836
|
+
_context11.next = 7;
|
|
837
837
|
break;
|
|
838
|
-
case
|
|
839
|
-
_context11.prev =
|
|
840
|
-
_t6 = _context11["catch"](
|
|
838
|
+
case 6:
|
|
839
|
+
_context11.prev = 6;
|
|
840
|
+
_t6 = _context11["catch"](1);
|
|
841
841
|
_iterator2.e(_t6);
|
|
842
|
-
case
|
|
843
|
-
_context11.prev =
|
|
842
|
+
case 7:
|
|
843
|
+
_context11.prev = 7;
|
|
844
844
|
_iterator2.f();
|
|
845
|
-
return _context11.finish(
|
|
846
|
-
case
|
|
847
|
-
_context11.next =
|
|
845
|
+
return _context11.finish(7);
|
|
846
|
+
case 8:
|
|
847
|
+
_context11.next = 10;
|
|
848
848
|
break;
|
|
849
|
-
case
|
|
849
|
+
case 9:
|
|
850
850
|
/* Setting this to true because region info is possibly undefined */
|
|
851
851
|
useDefault = true;
|
|
852
|
-
case
|
|
852
|
+
case 10:
|
|
853
853
|
/* Use a default URL if Mobius discovery fails either because of region info failure
|
|
854
854
|
* or because the discovered Mobius couldn't be reached
|
|
855
855
|
*/
|
|
@@ -862,11 +862,11 @@ var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
|
862
862
|
this.mobiusHost = "https://".concat(this.mobiusClusters[0].host).concat(_constants2.API_V1);
|
|
863
863
|
this.primaryMobiusUris = ["".concat(this.mobiusHost).concat(_constants2.URL_ENDPOINT)];
|
|
864
864
|
}
|
|
865
|
-
case
|
|
865
|
+
case 11:
|
|
866
866
|
case "end":
|
|
867
867
|
return _context11.stop();
|
|
868
868
|
}
|
|
869
|
-
}, _callee1, this, [[
|
|
869
|
+
}, _callee1, this, [[1, 6, 7, 8]]);
|
|
870
870
|
}));
|
|
871
871
|
function getMobiusServers() {
|
|
872
872
|
return _getMobiusServers.apply(this, arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Media","_interopRequireWildcard","require","_internalPluginMobiusSocket","_asyncMutex","_constants","_Utils","_types","_SDKConnector","_interopRequireDefault","_impl","_types2","_types3","_types4","_Logger","_callManager","_constants2","_line","_types5","_Metrics","_windowsChromiumIceWarmupUtils","_request","_utils","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t11","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","_createForOfIteratorHelper","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","_n","F","s","done","value","TypeError","a","u","next","return","_arrayLikeToArray","toString","slice","constructor","name","_Array$from","test","Array","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","apply","Boolean","prototype","valueOf","CallingClient","exports","_Eventing","webex","config","_this$sdkConfig","_this$sdkConfig$servi","_this$sdkConfig2","_this$sdkConfig2$logg","_config$isMobiusSocke","_this","_classCallCheck2","_defineProperty2","_asyncToGenerator2","_regenerator","mark","_callee","line","wrap","_context","prev","networkDownTimestamp","Date","toISOString","checkNetworkReachability","isNetworkDown","sent","log","warn","file","CALLING_CLIENT_FILE","method","METHODS","NETWORK_OFFLINE","_values","lineDict","registration","clearKeepaliveTimer","stop","info","METHOD_START_MESSAGE","NETWORK_ONLINE","networkUpTimestamp","MERCURY_OFFLINE","mercuryDownTimestamp","metricManager","submitConnectionMetrics","METRIC_EVENT","CONNECTION_ERROR","CONNECTION_ACTION","MERCURY_DOWN","METRIC_TYPE","BEHAVIORAL","mercuryUpTimestamp","_callee3","callCheckInterval","_context3","MERCURY_ONLINE","setInterval","_callee2","_context2","_keys","callManager","getActiveCalls","clearInterval","getStatus","RegistrationStatus","IDLE","handleConnectionRestoration","NETWORK_FLAP_TIMEOUT","checkCallStatus","NETWORK_FLAP","MERCURY_UP","_ref4","_callee4","event","eventType","_context4","HANDLE_MOBIUS_ASYNC_EVENT","data","abrupt","MobiusEventType","REGISTRATION_DOWN","startsWith","dequeueWsEvents","_x","arguments","_callee6","_context6","CALLS_CLEARED_HANDLER","isDeviceRegistered","mutex","runExclusive","_callee5","_context5","isReconnectPending","CALLS_CLEARED_HANDLER_UTIL","reconnectOnFailure","sdkConnector","SDKConnector","getWebex","_config$logger","setWebex","logger","level","setWebexLogger","Mutex","sdkConfig","serviceData","indicator","ServiceIndicator","CALLING","domain","logLevel","LOGGER","ERROR","setLogger","validateServiceData","isMobiusSocketEnabled","isMobiusWssEnabled","getCallManager","getMetricManager","mediaEngine","adaptedLogger","_len","args","_key","join","error","_len2","_key2","_len3","_key3","_len4","_key4","trace","_len5","_key5","debug","_len6","_key6","primaryMobiusUris","backupMobiusUris","primaryWssMobiusUris","backupWssMobiusUris","mobiusClusters","internal","services","getMobiusClusters","mobiusHost","mobiusSocket","getMobiusSocketInstance","apiRequest","APIRequest","getInstance","registerSessionsListener","registerCallsClearedListener","_inherits2","_createClass2","key","_init","_callee7","_window","_window$navigator","ua","_t","_context7","window","navigator","userAgent","toLowerCase","includes","windowsChromiumIceWarmup","iceServers","timeoutMs","concat","getMobiusServers","connectToMobiusSocket","registerMobiusSocketListener","createLine","setupNetworkEventListeners","init","_checkNetworkReachability","_callee8","controller","timeoutId","_t2","_context8","AbortController","setTimeout","abort","fetch","cache","mode","signal","clearTimeout","_checkCallStatus","_callee9","loggerContext","calls","_iterator","_step","_loop","_t3","_context0","_context9","postStatus","then","catch","err","sendCallStateMachineEvt","type","delegateYield","finish","_this2","addEventListener","handleNetworkOnline","handleNetworkOffline","mercury","on","handleMercuryOffline","handleMercuryOnline","_getClientRegionInfo","_callee0","_this3","regionInfo","_response$headers","_response$headers$tra","_response$headers2","response","clientRegionInfo","_t4","_context1","GET_CLIENT_REGION_INFO","request","uri","DISCOVERY_URL","HTTP_METHODS","GET","addAuthHeader","headers","SPARK_USER_AGENT","body","clientRegion","countryCode","trackingid","submitRegionInfoMetric","MOBIUS_DISCOVERY","MOBIUS_SERVER_ACTION","REGION_INFO","_stringify","handleCallingClientErrors","clientError","_headers$trackingId","_headers2","submitRegistrationMetric","REGISTRATION_ERROR","REG_ACTION","REGISTER","GET_MOBIUS_SERVERS_UTIL","trackingId","undefined","emit","CALLING_CLIENT_EVENT_KEYS","uploadLogs","getClientRegionInfo","_getMobiusServers","_callee1","_this$sdkConfig3","_this$sdkConfig3$disc","_this$sdkConfig4","_this$sdkConfig4$disc","_this4","useDefault","_this$sdkConfig5","_this$sdkConfig5$disc","_this$sdkConfig6","_this$sdkConfig6$disc","_this$webex$internal$","_iterator2","_step2","_loop2","_ret","_t6","_context11","GET_MOBIUS_SERVERS","discovery","country","region","_serviceUrls","mobius","_activeServices","_response$headers3","_response$headers$tra2","_response$headers4","mobiusServers","mobiusUris","_t5","_context10","host","API_V1","URL_ENDPOINT","CISCO_DEVICE_URL","device","url","CALLING_USER_AGENT","service","ALLOWED_SERVICES","MOBIUS","submitMobiusServersMetric","MOBIUS_SERVERS","filterMobiusUris","primary","backup","primaryWss","backupWss","_headers$trackingId2","_headers4","t0","_connectToMobiusSocket","_callee10","_iterator3","_step3","wssUri","_iterator4","_step4","_wssUri","_t7","_t8","_t9","_t0","_context12","CONNECT_TO_MOBIUS_SOCKET","connect","_this5","REGISTER_MOBIUS_SOCKET_LISTENER","handleMobiusAsyncEvent","REGISTER_CALLS_CLEARED_LISTENER","ALL_CALLS_CLEARED","callsClearedHandler","getLoggingLevel","getLogLevel","getSDKConnector","_this6","REGISTER_SESSIONS_LISTENER","registerListener","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","_ref7","_callee11","sessionArr","_context13","userSessions","sessionType","SessionType","WEBEX_CALLING","splice","USER_SESSION_INFO","_x2","_createLine","_callee12","_this$sdkConfig7","_this$sdkConfig8","_context14","CREATE_LINE","Line","userId","isSocketEnabled","normalizeMobiusUris","jwe","lineId","getLines","_getDevices","_callee13","userid","mobiusUrls","finalError","_iterator5","_step5","mobiusUrl","normalizedMobiusUrl","_body$devices","_t1","_t10","_context15","Error","GET_DEVICES","_toConsumableArray2","replace","DEVICES_ENDPOINT_RESOURCE","encodeURIComponent","statusCode","setDeviceInfo","setActiveMobiusUrl","devices","getDevices","_x3","activeCalls","forEach","correlationId","push","getConnectedCall","connectCall","isConnected","isHeld","_uploadLogs2","_callee14","result","_context16","Eventing","createClient","_ref8","_callee15","callingClientInstance","_context17","_x4","_x5"],"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';\n// @ts-ignore - JS module without type declarations\nimport {getMobiusSocketInstance} from '@webex/internal-plugin-mobius-socket';\nimport {Mutex} from 'async-mutex';\nimport {METHOD_START_MESSAGE} from '../common/constants';\nimport {\n filterMobiusUris,\n handleCallingClientErrors,\n normalizeMobiusUris,\n uploadLogs,\n validateServiceData,\n} from '../common/Utils';\nimport {LOGGER} 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 MobiusServers,\n WebexRequestPayload,\n RegistrationStatus,\n UploadLogsResponse,\n DeviceType,\n Devices,\n} from '../common/types';\nimport {ICallingClient, CallingClientConfig} from './types';\nimport {ICall, ICallManager, MobiusAsyncEvent, MobiusEventType} 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 SPARK_USER_AGENT,\n URL_ENDPOINT,\n API_V1,\n METHODS,\n NETWORK_FLAP_TIMEOUT,\n DEVICES_ENDPOINT_RESOURCE,\n} from './constants';\nimport Line from './line';\nimport {ILine} from './line/types';\nimport {\n METRIC_EVENT,\n REG_ACTION,\n METRIC_TYPE,\n IMetricManager,\n CONNECTION_ACTION,\n MOBIUS_SERVER_ACTION,\n} from '../Metrics/types';\nimport {getMetricManager} from '../Metrics';\nimport windowsChromiumIceWarmup from './windowsChromiumIceWarmupUtils';\nimport {APIRequest} from './utils/request';\nimport {isMobiusWssEnabled} from './utils';\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 primaryWssMobiusUris: string[];\n\n private backupWssMobiusUris: 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 private apiRequest: APIRequest;\n\n private isMobiusSocketEnabled: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private mobiusSocket: any;\n\n private isNetworkDown = false;\n\n private networkDownTimestamp = '';\n\n private networkUpTimestamp = '';\n\n private mercuryDownTimestamp = '';\n\n private mercuryUpTimestamp = '';\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 if (config?.logger?.level && webex.logger.config) {\n webex.logger.config.level = config.logger.level; // override the webex logger level\n }\n log.setWebexLogger(webex.logger);\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.isMobiusSocketEnabled =\n isMobiusWssEnabled(this.webex) || (config?.isMobiusSocketEnabled ?? false);\n\n this.callManager = getCallManager(\n this.webex,\n serviceData.indicator,\n this.isMobiusSocketEnabled\n );\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 this.primaryWssMobiusUris = [];\n this.backupWssMobiusUris = [];\n this.mobiusClusters = this.webex.internal.services.getMobiusClusters();\n this.mobiusHost = '';\n\n if (this.isMobiusSocketEnabled) {\n this.mobiusSocket = getMobiusSocketInstance(this.webex);\n }\n\n this.apiRequest = APIRequest.getInstance({\n webex: this.webex,\n isMobiusSocketEnabled: this.isMobiusSocketEnabled,\n });\n\n this.registerSessionsListener();\n\n this.registerCallsClearedListener();\n }\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 // Only for Windows Chromium based browsers we need to do the ICE warmup\n if (typeof window !== 'undefined' && window?.navigator?.userAgent) {\n const ua = window.navigator.userAgent;\n if (ua.toLowerCase().includes('windows')) {\n log.info('Starting ICE warmup for Windows Chromium based browser', {\n file: CALLING_CLIENT_FILE,\n method: 'init',\n });\n try {\n await windowsChromiumIceWarmup({\n iceServers: [],\n timeoutMs: 1000,\n });\n log.info(`ICE warmup completed`, {\n file: CALLING_CLIENT_FILE,\n method: 'init',\n });\n } catch (err) {\n log.warn(`ICE warmup failed: ${err}`, {\n file: CALLING_CLIENT_FILE,\n method: 'init',\n });\n }\n }\n }\n\n await this.getMobiusServers();\n\n if (this.isMobiusSocketEnabled) {\n await this.connectToMobiusSocket();\n this.registerMobiusSocketListener();\n }\n\n await this.createLine();\n\n this.setupNetworkEventListeners();\n }\n\n /**\n * Ping a reliable external endpoint with a short timeout to infer connectivity.\n */\n private async checkNetworkReachability(): Promise<boolean> {\n try {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 3000);\n\n // Using a common connectivity check endpoint that returns 204 with minimal payload.\n // no-cors mode yields an opaque response but a successful fetch implies reachability.\n await fetch('https://www.google.com/generate_204', {\n method: 'GET',\n cache: 'no-cache',\n mode: 'no-cors',\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n return true;\n } catch (error) {\n log.warn(`Network connectivity probe failed: ${error}`, {\n file: CALLING_CLIENT_FILE,\n method: 'pingExternal',\n });\n\n return false;\n }\n }\n\n private async checkCallStatus() {\n const loggerContext = {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n };\n const calls = Object.values(this.callManager.getActiveCalls());\n for (const call of calls) {\n call\n .postStatus()\n .then(() => {\n log.info(`Call is active`, loggerContext);\n /*\n * Media Renegotiation Possibility if call keepalive succeeds,\n * for cases like WebRTC disconnect and media inactivity.\n */\n })\n .catch((err) => {\n log.warn(`Call Keepalive failed: ${err}`, loggerContext);\n\n call.sendCallStateMachineEvt({type: 'E_SEND_CALL_DISCONNECT'});\n });\n }\n }\n\n private handleNetworkOffline = async () => {\n this.networkDownTimestamp = new Date().toISOString();\n this.isNetworkDown = !(await this.checkNetworkReachability());\n log.warn(`Network has gone down, wait for it to come back up`, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.NETWORK_OFFLINE,\n });\n\n if (this.isNetworkDown) {\n const line = Object.values(this.lineDict)[0];\n line.registration.clearKeepaliveTimer();\n }\n };\n\n // Wondering if we should keep this for timestamp recording purpose\n private handleNetworkOnline = () => {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.NETWORK_ONLINE,\n });\n this.networkUpTimestamp = new Date().toISOString();\n };\n\n private handleMercuryOffline = () => {\n log.warn(`Mercury down, waiting for connection to be up`, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.MERCURY_OFFLINE,\n });\n this.mercuryDownTimestamp = new Date().toISOString();\n this.metricManager.submitConnectionMetrics(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_DOWN,\n METRIC_TYPE.BEHAVIORAL,\n this.mercuryDownTimestamp,\n this.mercuryUpTimestamp\n );\n };\n\n private handleMercuryOnline = async () => {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.MERCURY_ONLINE,\n });\n this.mercuryUpTimestamp = new Date().toISOString();\n if (this.isNetworkDown) {\n const callCheckInterval = setInterval(async () => {\n if (!Object.keys(this.callManager.getActiveCalls()).length) {\n clearInterval(callCheckInterval);\n const line = Object.values(this.lineDict)[0];\n\n if (line.getStatus() !== RegistrationStatus.IDLE) {\n this.isNetworkDown = await line.registration.handleConnectionRestoration(\n this.isNetworkDown\n );\n } else {\n this.isNetworkDown = false;\n }\n }\n }, NETWORK_FLAP_TIMEOUT);\n\n if (Object.keys(this.callManager.getActiveCalls()).length) {\n await this.checkCallStatus();\n }\n\n this.metricManager.submitConnectionMetrics(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n this.networkDownTimestamp,\n this.networkUpTimestamp\n );\n } else {\n if (Object.keys(this.callManager.getActiveCalls()).length) {\n await this.checkCallStatus();\n }\n this.metricManager.submitConnectionMetrics(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_UP,\n METRIC_TYPE.BEHAVIORAL,\n this.mercuryDownTimestamp,\n this.mercuryUpTimestamp\n );\n }\n };\n\n private setupNetworkEventListeners(): void {\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('online', this.handleNetworkOnline);\n\n window.addEventListener('offline', this.handleNetworkOffline);\n }\n\n this.webex.internal.mercury.on('offline', () => {\n this.handleMercuryOffline();\n });\n\n this.webex.internal.mercury.on('online', () => {\n this.handleMercuryOnline();\n });\n }\n\n /**\n * Fetches countryCode and region of the client.\n */\n private async getClientRegionInfo(): Promise<RegionInfo> {\n let abort;\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_CLIENT_REGION_INFO,\n });\n const regionInfo = {} as RegionInfo;\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${DISCOVERY_URL}`,\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\n regionInfo.countryCode = clientRegionInfo?.countryCode || '';\n\n log.log(\n `Successfully fetched Client region info: ${regionInfo.clientRegion}, countryCode: ${regionInfo.countryCode}, and response trackingid: ${response?.headers?.trackingid}`,\n {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_CLIENT_REGION_INFO,\n }\n );\n\n this.metricManager.submitRegionInfoMetric(\n METRIC_EVENT.MOBIUS_DISCOVERY,\n MOBIUS_SERVER_ACTION.REGION_INFO,\n METRIC_TYPE.BEHAVIORAL,\n this.mobiusHost,\n clientRegionInfo.clientRegion,\n clientRegionInfo.countryCode,\n response?.headers?.trackingid ?? ''\n );\n } catch (err: unknown) {\n log.error(`Failed to get client region info: ${JSON.stringify(err)}`, {\n method: METHODS.GET_CLIENT_REGION_INFO,\n file: CALLING_CLIENT_FILE,\n });\n\n // eslint-disable-next-line no-await-in-loop\n abort = await 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 GET_MOBIUS_SERVERS_UTIL,\n 'UNKNOWN',\n (err as WebexRequestPayload).headers?.trackingId ?? '',\n undefined,\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 regionInfo.clientRegion = '';\n regionInfo.countryCode = '';\n\n if (abort) {\n await uploadLogs();\n\n return regionInfo;\n }\n }\n\n return regionInfo;\n }\n\n /**\n * Local method for finding the mobius servers.\n */\n private async getMobiusServers() {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_MOBIUS_SERVERS,\n });\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.log('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 =\n this.webex.internal.services._serviceUrls?.mobius ||\n this.webex.internal.services.get(this.webex.internal.services._activeServices.mobius);\n } else {\n log.log('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 {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n }\n );\n\n for (const mobius of this.mobiusClusters) {\n if (mobius.host) {\n this.mobiusHost = `https://${mobius.host}${API_V1}`;\n } else {\n this.mobiusHost = mobius as unknown as string;\n }\n try {\n // eslint-disable-next-line no-await-in-loop\n const response = <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(\n `Mobius Server found for the region. Response trackingId: ${response?.headers?.trackingid}`,\n {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n }\n );\n\n const mobiusServers = response.body as MobiusServers;\n\n // Metrics for mobius servers\n this.metricManager.submitMobiusServersMetric(\n METRIC_EVENT.MOBIUS_DISCOVERY,\n MOBIUS_SERVER_ACTION.MOBIUS_SERVERS,\n METRIC_TYPE.BEHAVIORAL,\n mobiusServers,\n response?.headers?.trackingid ?? ''\n );\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 this.primaryWssMobiusUris = mobiusUris.primaryWss;\n this.backupWssMobiusUris = mobiusUris.backupWss;\n\n log.log(\n `Final list of Mobius Servers, primary: ${mobiusUris.primary} and backup: ${mobiusUris.backup}`,\n {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n }\n );\n\n break;\n } catch (err: unknown) {\n log.error(`Failed to get Mobius servers: ${JSON.stringify(err)}`, {\n method: METHODS.GET_MOBIUS_SERVERS,\n file: CALLING_CLIENT_FILE,\n });\n\n // eslint-disable-next-line no-await-in-loop\n const abort = await 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 GET_MOBIUS_SERVERS_UTIL,\n 'UNKNOWN',\n (err as WebexRequestPayload).headers?.trackingId ?? '',\n undefined,\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 if (abort) {\n useDefault = true;\n // eslint-disable-next-line no-await-in-loop\n await uploadLogs();\n break;\n }\n }\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 {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n }\n );\n this.mobiusHost = `https://${this.mobiusClusters[0].host}${API_V1}`;\n this.primaryMobiusUris = [`${this.mobiusHost}${URL_ENDPOINT}`];\n }\n }\n\n /**\n * Connects to the Mobius WebSocket using WSS URIs discovered during Mobius server discovery.\n * Attempts primary WSS URIs first, then falls back to backup WSS URIs.\n * If all attempts fail, logs a warning and continues without a socket connection.\n */\n private async connectToMobiusSocket(): Promise<void> {\n const loggerContext = {\n file: CALLING_CLIENT_FILE,\n method: METHODS.CONNECT_TO_MOBIUS_SOCKET,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n if (!this.primaryWssMobiusUris.length && !this.backupWssMobiusUris.length) {\n log.warn(\n 'No WSS URIs available from Mobius discovery, skipping socket connection',\n loggerContext\n );\n\n return;\n }\n\n if (this.primaryWssMobiusUris.length) {\n log.log(\n `Attempting Mobius socket connection using primary WSS URIs (${this.primaryWssMobiusUris.length} available)`,\n loggerContext\n );\n\n for (const wssUri of this.primaryWssMobiusUris) {\n try {\n log.log(`Trying primary WSS URI: ${wssUri}`, loggerContext);\n // eslint-disable-next-line no-await-in-loop\n await this.mobiusSocket.connect(wssUri);\n log.log(\n `Successfully connected to Mobius socket on primary WSS URI: ${wssUri}`,\n loggerContext\n );\n\n return;\n } catch (err: unknown) {\n log.warn(`Primary WSS URI connection failed for ${wssUri}: ${err}`, loggerContext);\n }\n }\n\n log.warn('All primary WSS URI connection attempts failed', loggerContext);\n } else {\n log.warn('No primary WSS URIs available, skipping to backup', loggerContext);\n }\n\n if (this.backupWssMobiusUris.length) {\n log.log(\n `Attempting Mobius socket connection using backup WSS URIs (${this.backupWssMobiusUris.length} available)`,\n loggerContext\n );\n\n for (const wssUri of this.backupWssMobiusUris) {\n try {\n log.log(`Trying backup WSS URI: ${wssUri}`, loggerContext);\n // eslint-disable-next-line no-await-in-loop\n await this.mobiusSocket.connect(wssUri);\n log.log(\n `Successfully connected to Mobius socket on backup WSS URI: ${wssUri}`,\n loggerContext\n );\n\n return;\n } catch (err: unknown) {\n log.warn(`Backup WSS URI connection failed for ${wssUri}: ${err}`, loggerContext);\n }\n }\n\n log.warn('All backup WSS URI connection attempts failed', loggerContext);\n } else {\n log.warn('No backup WSS URIs available', loggerContext);\n }\n\n // Throwing an error is not required here. Connection will be attempted again during registration if no connection is established.\n // We might remove this connection attempt logic during optimization since we are anyway going to try to connect to Mobius during\n // registration and without registration the connection will be closed automatically by the mobius server.\n log.warn(\n 'All Mobius socket connection attempts exhausted for both primary and backup, continuing without socket',\n loggerContext\n );\n log.warn(\n 'All Mobius socket connection attempts exhausted for both primary and backup, continuing without socket',\n loggerContext\n );\n }\n\n private registerMobiusSocketListener() {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.REGISTER_MOBIUS_SOCKET_LISTENER,\n });\n this.sdkConnector.registerMobiusSocketListener<MobiusAsyncEvent>(\n 'event:async_event',\n (event) => {\n this.handleMobiusAsyncEvent(event);\n }\n );\n\n log.info('Successfully registered listener for Mobius events', {\n file: CALLING_CLIENT_FILE,\n method: METHODS.REGISTER_MOBIUS_SOCKET_LISTENER,\n });\n }\n\n // private unregisterMobiusSocketListener() {\n // log.info(METHOD_START_MESSAGE, {\n // file: CALLING_CLIENT_FILE,\n // method: METHODS.UNREGISTER_MOBIUS_SOCKET_LISTENER,\n // });\n // this.sdkConnector.unregisterMobiusSocketListener('async_event');\n // }\n\n private handleMobiusAsyncEvent = async (event?: MobiusAsyncEvent) => {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.HANDLE_MOBIUS_ASYNC_EVENT,\n });\n\n const eventType = event?.data.eventType;\n\n if (!eventType) {\n log.warn('Dropping unsupported mobius socket payload', {\n file: CALLING_CLIENT_FILE,\n method: METHODS.HANDLE_MOBIUS_ASYNC_EVENT,\n });\n\n return;\n }\n\n if (eventType === MobiusEventType.REGISTRATION_DOWN) {\n // const line = Object.values(this.lineDict)[0];\n // line.registration.handleRegistrationDownEvent(event);\n\n return;\n }\n\n if (eventType.startsWith('mobius.')) {\n this.callManager.dequeueWsEvents(event);\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 log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.REGISTER_CALLS_CLEARED_LISTENER,\n });\n\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 log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.CALLS_CLEARED_HANDLER,\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 {registration} = Object.values(this.lineDict)[0];\n\n if (!registration.isDeviceRegistered()) {\n await this.mutex.runExclusive(async () => {\n if (registration.isReconnectPending()) {\n log.info('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 log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.REGISTER_SESSIONS_LISTENER,\n });\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 log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.CREATE_LINE,\n });\n const line = new Line(\n this.webex.internal.device.userId,\n this.webex.internal.device.url,\n this.mutex,\n this.apiRequest.isSocketEnabled()\n ? normalizeMobiusUris(this.primaryWssMobiusUris)\n : this.primaryMobiusUris,\n this.apiRequest.isSocketEnabled()\n ? normalizeMobiusUris(this.backupWssMobiusUris)\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 * Fetches the list of devices for a given user from Mobius.\n */\n public async getDevices(userId?: string): Promise<DeviceType[]> {\n const userid = userId || this.webex.internal.device.userId;\n if (!userid) {\n throw new Error('userId is required to fetch devices');\n }\n\n log.info(METHOD_START_MESSAGE, {file: CALLING_CLIENT_FILE, method: METHODS.GET_DEVICES});\n\n const mobiusUrls = [...this.primaryMobiusUris, ...this.backupMobiusUris];\n if (mobiusUrls.length === 0) {\n throw new Error('Mobius URLs are not available');\n }\n\n let finalError;\n for (const mobiusUrl of mobiusUrls) {\n const normalizedMobiusUrl = mobiusUrl.replace(/\\/+$/, '/');\n const uri = `${normalizedMobiusUrl}${DEVICES_ENDPOINT_RESOURCE}?userid=${encodeURIComponent(\n userid\n )}`;\n try {\n // eslint-disable-next-line no-await-in-loop\n const response = (await this.webex.request({\n uri,\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n })) as WebexRequestPayload;\n\n if (response.statusCode !== 200) {\n throw new Error(`API call failed with ${response.statusCode}`);\n }\n\n const body = response.body as Devices;\n\n // Hydrate registration deviceInfo for deregister/restore flows\n Object.values(this.lineDict)[0].registration.setDeviceInfo(body);\n Object.values(this.lineDict)[0].registration.setActiveMobiusUrl(normalizedMobiusUrl);\n\n return body.devices ?? [];\n } catch (error) {\n finalError = error;\n }\n }\n\n log.error(`Failed to fetch devices for userId ${userId}: ${JSON.stringify(finalError)}`, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_DEVICES,\n });\n\n throw finalError;\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: Record<string, ICall[]> = {};\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 help troubleshoot SDK issues.\n *\n * This method collects the current SDK logs including network requests, WebSocket\n * messages, and client-side events, then securely submits them to Webex's diagnostics\n * service. The returned tracking ID, feedbackID can be provided to Webex support for faster\n * issue resolution.\n * @returns Promise<UploadLogsResponse>\n * @throws Error\n */\n public async uploadLogs(): Promise<UploadLogsResponse> {\n const result = await uploadLogs({}, true);\n if (!result) {\n throw new Error('Failed to upload logs: No response received.');\n }\n\n return result;\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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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Media","_interopRequireWildcard","require","_internalPluginMobiusSocket","_asyncMutex","_constants","_Utils","_types","_SDKConnector","_interopRequireDefault","_impl","_types2","_types3","_types4","_Logger","_callManager","_constants2","_line","_types5","_Metrics","_windowsChromiumIceWarmupUtils","_request","_utils","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t11","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","_createForOfIteratorHelper","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","_n","F","s","done","value","TypeError","a","u","next","return","_arrayLikeToArray","toString","slice","constructor","name","_Array$from","test","Array","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","apply","Boolean","prototype","valueOf","CallingClient","exports","_Eventing","webex","config","_this$sdkConfig","_this$sdkConfig$servi","_this$sdkConfig2","_this$sdkConfig2$logg","_config$isMobiusSocke","_this","_classCallCheck2","_defineProperty2","_asyncToGenerator2","_regenerator","mark","_callee","line","wrap","_context","prev","networkDownTimestamp","Date","toISOString","checkNetworkReachability","isNetworkDown","sent","log","warn","file","CALLING_CLIENT_FILE","method","METHODS","NETWORK_OFFLINE","_values","lineDict","registration","clearKeepaliveTimer","stop","info","METHOD_START_MESSAGE","NETWORK_ONLINE","networkUpTimestamp","MERCURY_OFFLINE","mercuryDownTimestamp","metricManager","submitConnectionMetrics","METRIC_EVENT","CONNECTION_ERROR","CONNECTION_ACTION","MERCURY_DOWN","METRIC_TYPE","BEHAVIORAL","mercuryUpTimestamp","_callee3","callCheckInterval","_context3","MERCURY_ONLINE","setInterval","_callee2","_context2","_keys","callManager","getActiveCalls","clearInterval","getStatus","RegistrationStatus","IDLE","handleConnectionRestoration","NETWORK_FLAP_TIMEOUT","checkCallStatus","NETWORK_FLAP","MERCURY_UP","_ref4","_callee4","event","eventType","_context4","HANDLE_MOBIUS_ASYNC_EVENT","data","abrupt","MobiusEventType","REGISTRATION_DOWN","startsWith","dequeueWsEvents","_x","arguments","_callee6","_context6","CALLS_CLEARED_HANDLER","isDeviceRegistered","mutex","runExclusive","_callee5","_context5","isReconnectPending","CALLS_CLEARED_HANDLER_UTIL","reconnectOnFailure","sdkConnector","SDKConnector","getWebex","_config$logger","setWebex","logger","level","setWebexLogger","Mutex","sdkConfig","serviceData","indicator","ServiceIndicator","CALLING","domain","logLevel","LOGGER","ERROR","setLogger","validateServiceData","isMobiusSocketEnabled","isMobiusWssEnabled","getCallManager","getMetricManager","mediaEngine","adaptedLogger","_len","args","_key","join","error","_len2","_key2","_len3","_key3","_len4","_key4","trace","_len5","_key5","debug","_len6","_key6","primaryMobiusUris","backupMobiusUris","primaryWssMobiusUris","backupWssMobiusUris","mobiusClusters","internal","services","getMobiusClusters","mobiusHost","mobiusSocket","getMobiusSocketInstance","apiRequest","APIRequest","getInstance","registerSessionsListener","registerCallsClearedListener","_inherits2","_createClass2","key","_init","_callee7","_window","_window$navigator","ua","_t","_context7","window","navigator","userAgent","toLowerCase","includes","windowsChromiumIceWarmup","iceServers","timeoutMs","concat","getMobiusServers","connectToMobiusSocket","registerMobiusSocketListener","createLine","setupNetworkEventListeners","init","_checkNetworkReachability","_callee8","controller","timeoutId","_t2","_context8","AbortController","setTimeout","abort","fetch","cache","mode","signal","clearTimeout","_checkCallStatus","_callee9","loggerContext","calls","_iterator","_step","_loop","_t3","_context0","_context9","postStatus","then","catch","err","sendCallStateMachineEvt","type","delegateYield","finish","_this2","addEventListener","handleNetworkOnline","handleNetworkOffline","mercury","on","handleMercuryOffline","handleMercuryOnline","_getClientRegionInfo","_callee0","_this3","regionInfo","_response$headers","_response$headers$tra","_response$headers2","response","clientRegionInfo","_t4","_context1","GET_CLIENT_REGION_INFO","request","uri","DISCOVERY_URL","HTTP_METHODS","GET","addAuthHeader","headers","SPARK_USER_AGENT","body","clientRegion","countryCode","trackingid","submitRegionInfoMetric","MOBIUS_DISCOVERY","MOBIUS_SERVER_ACTION","REGION_INFO","_stringify","handleCallingClientErrors","clientError","_headers$trackingId","_headers2","submitRegistrationMetric","REGISTRATION_ERROR","REG_ACTION","REGISTER","GET_MOBIUS_SERVERS_UTIL","trackingId","undefined","emit","CALLING_CLIENT_EVENT_KEYS","uploadLogs","getClientRegionInfo","_getMobiusServers","_callee1","_this$sdkConfig3","_this$sdkConfig3$disc","_this$sdkConfig4","_this$sdkConfig4$disc","_this4","useDefault","_this$sdkConfig5","_this$sdkConfig5$disc","_this$sdkConfig6","_this$sdkConfig6$disc","_this$webex$internal$","_iterator2","_step2","_loop2","_ret","_t6","_context11","GET_MOBIUS_SERVERS","discovery","country","region","_serviceUrls","mobius","_activeServices","_response$headers3","_response$headers$tra2","_response$headers4","mobiusServers","mobiusUris","_t5","_context10","host","API_V1","CISCO_DEVICE_URL","device","url","CALLING_USER_AGENT","service","ALLOWED_SERVICES","MOBIUS","submitMobiusServersMetric","MOBIUS_SERVERS","filterMobiusUris","primary","backup","primaryWss","backupWss","_headers$trackingId2","_headers4","t0","URL_ENDPOINT","_connectToMobiusSocket","_callee10","_iterator3","_step3","wssUri","_iterator4","_step4","_wssUri","_t7","_t8","_t9","_t0","_context12","CONNECT_TO_MOBIUS_SOCKET","connect","_this5","REGISTER_MOBIUS_SOCKET_LISTENER","handleMobiusAsyncEvent","REGISTER_CALLS_CLEARED_LISTENER","ALL_CALLS_CLEARED","callsClearedHandler","getLoggingLevel","getLogLevel","getSDKConnector","_this6","REGISTER_SESSIONS_LISTENER","registerListener","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","_ref7","_callee11","sessionArr","_context13","userSessions","sessionType","SessionType","WEBEX_CALLING","splice","USER_SESSION_INFO","_x2","_createLine","_callee12","_this$sdkConfig7","_this$sdkConfig8","_context14","CREATE_LINE","Line","userId","isSocketEnabled","normalizeMobiusUris","jwe","lineId","getLines","_getDevices","_callee13","userid","mobiusUrls","finalError","_iterator5","_step5","mobiusUrl","normalizedMobiusUrl","_body$devices","_t1","_t10","_context15","Error","GET_DEVICES","_toConsumableArray2","replace","DEVICES_ENDPOINT_RESOURCE","encodeURIComponent","statusCode","setDeviceInfo","setActiveMobiusUrl","devices","getDevices","_x3","activeCalls","forEach","correlationId","push","getConnectedCall","connectCall","isConnected","isHeld","_uploadLogs2","_callee14","result","_context16","Eventing","createClient","_ref8","_callee15","callingClientInstance","_context17","_x4","_x5"],"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';\n// @ts-ignore - JS module without type declarations\nimport {getMobiusSocketInstance} from '@webex/internal-plugin-mobius-socket';\nimport {Mutex} from 'async-mutex';\nimport {METHOD_START_MESSAGE} from '../common/constants';\nimport {\n filterMobiusUris,\n handleCallingClientErrors,\n normalizeMobiusUris,\n uploadLogs,\n validateServiceData,\n} from '../common/Utils';\nimport {LOGGER} 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 MobiusServers,\n WebexRequestPayload,\n RegistrationStatus,\n UploadLogsResponse,\n DeviceType,\n Devices,\n} from '../common/types';\nimport {ICallingClient, CallingClientConfig} from './types';\nimport {ICall, ICallManager, MobiusAsyncEvent, MobiusEventType} 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 SPARK_USER_AGENT,\n URL_ENDPOINT,\n API_V1,\n METHODS,\n NETWORK_FLAP_TIMEOUT,\n DEVICES_ENDPOINT_RESOURCE,\n} from './constants';\nimport Line from './line';\nimport {ILine} from './line/types';\nimport {\n METRIC_EVENT,\n REG_ACTION,\n METRIC_TYPE,\n IMetricManager,\n CONNECTION_ACTION,\n MOBIUS_SERVER_ACTION,\n} from '../Metrics/types';\nimport {getMetricManager} from '../Metrics';\nimport windowsChromiumIceWarmup from './windowsChromiumIceWarmupUtils';\nimport {APIRequest} from './utils/request';\nimport {isMobiusWssEnabled} from './utils';\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 primaryWssMobiusUris: string[];\n\n private backupWssMobiusUris: 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 private apiRequest: APIRequest;\n\n private isMobiusSocketEnabled: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private mobiusSocket: any;\n\n private isNetworkDown = false;\n\n private networkDownTimestamp = '';\n\n private networkUpTimestamp = '';\n\n private mercuryDownTimestamp = '';\n\n private mercuryUpTimestamp = '';\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 if (config?.logger?.level && webex.logger.config) {\n webex.logger.config.level = config.logger.level; // override the webex logger level\n }\n log.setWebexLogger(webex.logger);\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.isMobiusSocketEnabled =\n isMobiusWssEnabled(this.webex) || (config?.isMobiusSocketEnabled ?? false);\n\n this.callManager = getCallManager(\n this.webex,\n serviceData.indicator,\n this.isMobiusSocketEnabled\n );\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 this.primaryWssMobiusUris = [];\n this.backupWssMobiusUris = [];\n this.mobiusClusters = this.webex.internal.services.getMobiusClusters();\n this.mobiusHost = '';\n\n if (this.isMobiusSocketEnabled) {\n this.mobiusSocket = getMobiusSocketInstance(this.webex);\n }\n\n this.apiRequest = APIRequest.getInstance({\n webex: this.webex,\n isMobiusSocketEnabled: this.isMobiusSocketEnabled,\n });\n\n this.registerSessionsListener();\n\n this.registerCallsClearedListener();\n }\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 // Only for Windows Chromium based browsers we need to do the ICE warmup\n if (typeof window !== 'undefined' && window?.navigator?.userAgent) {\n const ua = window.navigator.userAgent;\n if (ua.toLowerCase().includes('windows')) {\n log.info('Starting ICE warmup for Windows Chromium based browser', {\n file: CALLING_CLIENT_FILE,\n method: 'init',\n });\n try {\n await windowsChromiumIceWarmup({\n iceServers: [],\n timeoutMs: 1000,\n });\n log.info(`ICE warmup completed`, {\n file: CALLING_CLIENT_FILE,\n method: 'init',\n });\n } catch (err) {\n log.warn(`ICE warmup failed: ${err}`, {\n file: CALLING_CLIENT_FILE,\n method: 'init',\n });\n }\n }\n }\n\n await this.getMobiusServers();\n\n if (this.isMobiusSocketEnabled) {\n await this.connectToMobiusSocket();\n this.registerMobiusSocketListener();\n }\n\n await this.createLine();\n\n this.setupNetworkEventListeners();\n }\n\n /**\n * Ping a reliable external endpoint with a short timeout to infer connectivity.\n */\n private async checkNetworkReachability(): Promise<boolean> {\n try {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 3000);\n\n // Using a common connectivity check endpoint that returns 204 with minimal payload.\n // no-cors mode yields an opaque response but a successful fetch implies reachability.\n await fetch('https://www.google.com/generate_204', {\n method: 'GET',\n cache: 'no-cache',\n mode: 'no-cors',\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n return true;\n } catch (error) {\n log.warn(`Network connectivity probe failed: ${error}`, {\n file: CALLING_CLIENT_FILE,\n method: 'pingExternal',\n });\n\n return false;\n }\n }\n\n private async checkCallStatus() {\n const loggerContext = {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n };\n const calls = Object.values(this.callManager.getActiveCalls());\n for (const call of calls) {\n call\n .postStatus()\n .then(() => {\n log.info(`Call is active`, loggerContext);\n /*\n * Media Renegotiation Possibility if call keepalive succeeds,\n * for cases like WebRTC disconnect and media inactivity.\n */\n })\n .catch((err) => {\n log.warn(`Call Keepalive failed: ${err}`, loggerContext);\n\n call.sendCallStateMachineEvt({type: 'E_SEND_CALL_DISCONNECT'});\n });\n }\n }\n\n private handleNetworkOffline = async () => {\n this.networkDownTimestamp = new Date().toISOString();\n this.isNetworkDown = !(await this.checkNetworkReachability());\n log.warn(`Network has gone down, wait for it to come back up`, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.NETWORK_OFFLINE,\n });\n\n if (this.isNetworkDown) {\n const line = Object.values(this.lineDict)[0];\n line.registration.clearKeepaliveTimer();\n }\n };\n\n // Wondering if we should keep this for timestamp recording purpose\n private handleNetworkOnline = () => {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.NETWORK_ONLINE,\n });\n this.networkUpTimestamp = new Date().toISOString();\n };\n\n private handleMercuryOffline = () => {\n log.warn(`Mercury down, waiting for connection to be up`, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.MERCURY_OFFLINE,\n });\n this.mercuryDownTimestamp = new Date().toISOString();\n this.metricManager.submitConnectionMetrics(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_DOWN,\n METRIC_TYPE.BEHAVIORAL,\n this.mercuryDownTimestamp,\n this.mercuryUpTimestamp\n );\n };\n\n private handleMercuryOnline = async () => {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.MERCURY_ONLINE,\n });\n this.mercuryUpTimestamp = new Date().toISOString();\n if (this.isNetworkDown) {\n const callCheckInterval = setInterval(async () => {\n if (!Object.keys(this.callManager.getActiveCalls()).length) {\n clearInterval(callCheckInterval);\n const line = Object.values(this.lineDict)[0];\n\n if (line.getStatus() !== RegistrationStatus.IDLE) {\n this.isNetworkDown = await line.registration.handleConnectionRestoration(\n this.isNetworkDown\n );\n } else {\n this.isNetworkDown = false;\n }\n }\n }, NETWORK_FLAP_TIMEOUT);\n\n if (Object.keys(this.callManager.getActiveCalls()).length) {\n await this.checkCallStatus();\n }\n\n this.metricManager.submitConnectionMetrics(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n this.networkDownTimestamp,\n this.networkUpTimestamp\n );\n } else {\n if (Object.keys(this.callManager.getActiveCalls()).length) {\n await this.checkCallStatus();\n }\n this.metricManager.submitConnectionMetrics(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_UP,\n METRIC_TYPE.BEHAVIORAL,\n this.mercuryDownTimestamp,\n this.mercuryUpTimestamp\n );\n }\n };\n\n private setupNetworkEventListeners(): void {\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('online', this.handleNetworkOnline);\n\n window.addEventListener('offline', this.handleNetworkOffline);\n }\n\n this.webex.internal.mercury.on('offline', () => {\n this.handleMercuryOffline();\n });\n\n this.webex.internal.mercury.on('online', () => {\n this.handleMercuryOnline();\n });\n }\n\n /**\n * Fetches countryCode and region of the client.\n */\n private async getClientRegionInfo(): Promise<RegionInfo> {\n let abort;\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_CLIENT_REGION_INFO,\n });\n const regionInfo = {} as RegionInfo;\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${DISCOVERY_URL}`,\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\n regionInfo.countryCode = clientRegionInfo?.countryCode || '';\n\n log.log(\n `Successfully fetched Client region info: ${regionInfo.clientRegion}, countryCode: ${regionInfo.countryCode}, and response trackingid: ${response?.headers?.trackingid}`,\n {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_CLIENT_REGION_INFO,\n }\n );\n\n this.metricManager.submitRegionInfoMetric(\n METRIC_EVENT.MOBIUS_DISCOVERY,\n MOBIUS_SERVER_ACTION.REGION_INFO,\n METRIC_TYPE.BEHAVIORAL,\n this.mobiusHost,\n clientRegionInfo.clientRegion,\n clientRegionInfo.countryCode,\n response?.headers?.trackingid ?? ''\n );\n } catch (err: unknown) {\n log.error(`Failed to get client region info: ${JSON.stringify(err)}`, {\n method: METHODS.GET_CLIENT_REGION_INFO,\n file: CALLING_CLIENT_FILE,\n });\n\n // eslint-disable-next-line no-await-in-loop\n abort = await 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 GET_MOBIUS_SERVERS_UTIL,\n 'UNKNOWN',\n (err as WebexRequestPayload).headers?.trackingId ?? '',\n undefined,\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 regionInfo.clientRegion = '';\n regionInfo.countryCode = '';\n\n if (abort) {\n await uploadLogs();\n\n return regionInfo;\n }\n }\n\n return regionInfo;\n }\n\n /**\n * Local method for finding the mobius servers.\n */\n private async getMobiusServers() {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_MOBIUS_SERVERS,\n });\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.log('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 =\n this.webex.internal.services._serviceUrls?.mobius ||\n this.webex.internal.services.get(this.webex.internal.services._activeServices.mobius);\n } else {\n log.log('Updating region and country through Region discovery', {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n });\n\n // MOBIUS TODO: Remove this later. Added for testing purposes.\n // const regionInfo = await this.getClientRegionInfo();\n const regionInfo = {\n clientRegion: 'US-EAST',\n countryCode: 'WS-LOAD-TEST',\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 {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n }\n );\n\n for (const mobius of this.mobiusClusters) {\n if (mobius.host) {\n this.mobiusHost = `https://${mobius.host}${API_V1}`;\n } else {\n this.mobiusHost = mobius as unknown as string;\n }\n try {\n // eslint-disable-next-line no-await-in-loop\n const response = <WebexRequestPayload>await this.webex.request({\n // uri: `${this.mobiusHost}${URL_ENDPOINT}?regionCode=${clientRegion}&countryCode=${countryCode}`,\n // MOBIUS TODO: Remove this later. Added for testing purposes.\n uri: 'https://mobius.aload-calling1.ciscospark.com/api/v1/calling/web/?regionCode=US-EAST&countryCode=WS-LOAD-TEST',\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(\n `Mobius Server found for the region. Response trackingId: ${response?.headers?.trackingid}`,\n {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n }\n );\n\n const mobiusServers = response.body as MobiusServers;\n\n // Metrics for mobius servers\n this.metricManager.submitMobiusServersMetric(\n METRIC_EVENT.MOBIUS_DISCOVERY,\n MOBIUS_SERVER_ACTION.MOBIUS_SERVERS,\n METRIC_TYPE.BEHAVIORAL,\n mobiusServers,\n response?.headers?.trackingid ?? ''\n );\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 this.primaryWssMobiusUris = mobiusUris.primaryWss;\n this.backupWssMobiusUris = mobiusUris.backupWss;\n\n log.log(\n `Final list of Mobius Servers, primary: ${mobiusUris.primary} and backup: ${mobiusUris.backup}`,\n {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n }\n );\n\n break;\n } catch (err: unknown) {\n log.error(`Failed to get Mobius servers: ${JSON.stringify(err)}`, {\n method: METHODS.GET_MOBIUS_SERVERS,\n file: CALLING_CLIENT_FILE,\n });\n\n // eslint-disable-next-line no-await-in-loop\n const abort = await 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 GET_MOBIUS_SERVERS_UTIL,\n 'UNKNOWN',\n (err as WebexRequestPayload).headers?.trackingId ?? '',\n undefined,\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 if (abort) {\n useDefault = true;\n // eslint-disable-next-line no-await-in-loop\n await uploadLogs();\n break;\n }\n }\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 {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n }\n );\n this.mobiusHost = `https://${this.mobiusClusters[0].host}${API_V1}`;\n this.primaryMobiusUris = [`${this.mobiusHost}${URL_ENDPOINT}`];\n }\n }\n\n /**\n * Connects to the Mobius WebSocket using WSS URIs discovered during Mobius server discovery.\n * Attempts primary WSS URIs first, then falls back to backup WSS URIs.\n * If all attempts fail, logs a warning and continues without a socket connection.\n */\n private async connectToMobiusSocket(): Promise<void> {\n const loggerContext = {\n file: CALLING_CLIENT_FILE,\n method: METHODS.CONNECT_TO_MOBIUS_SOCKET,\n };\n\n log.info(METHOD_START_MESSAGE, loggerContext);\n\n if (!this.primaryWssMobiusUris.length && !this.backupWssMobiusUris.length) {\n log.warn(\n 'No WSS URIs available from Mobius discovery, skipping socket connection',\n loggerContext\n );\n\n return;\n }\n\n if (this.primaryWssMobiusUris.length) {\n log.log(\n `Attempting Mobius socket connection using primary WSS URIs (${this.primaryWssMobiusUris.length} available)`,\n loggerContext\n );\n\n for (const wssUri of this.primaryWssMobiusUris) {\n try {\n log.log(`Trying primary WSS URI: ${wssUri}`, loggerContext);\n // eslint-disable-next-line no-await-in-loop\n await this.mobiusSocket.connect(wssUri);\n log.log(\n `Successfully connected to Mobius socket on primary WSS URI: ${wssUri}`,\n loggerContext\n );\n\n return;\n } catch (err: unknown) {\n log.warn(`Primary WSS URI connection failed for ${wssUri}: ${err}`, loggerContext);\n }\n }\n\n log.warn('All primary WSS URI connection attempts failed', loggerContext);\n } else {\n log.warn('No primary WSS URIs available, skipping to backup', loggerContext);\n }\n\n if (this.backupWssMobiusUris.length) {\n log.log(\n `Attempting Mobius socket connection using backup WSS URIs (${this.backupWssMobiusUris.length} available)`,\n loggerContext\n );\n\n for (const wssUri of this.backupWssMobiusUris) {\n try {\n log.log(`Trying backup WSS URI: ${wssUri}`, loggerContext);\n // eslint-disable-next-line no-await-in-loop\n await this.mobiusSocket.connect(wssUri);\n log.log(\n `Successfully connected to Mobius socket on backup WSS URI: ${wssUri}`,\n loggerContext\n );\n\n return;\n } catch (err: unknown) {\n log.warn(`Backup WSS URI connection failed for ${wssUri}: ${err}`, loggerContext);\n }\n }\n\n log.warn('All backup WSS URI connection attempts failed', loggerContext);\n } else {\n log.warn('No backup WSS URIs available', loggerContext);\n }\n\n // Throwing an error is not required here. Connection will be attempted again during registration if no connection is established.\n // We might remove this connection attempt logic during optimization since we are anyway going to try to connect to Mobius during\n // registration and without registration the connection will be closed automatically by the mobius server.\n log.warn(\n 'All Mobius socket connection attempts exhausted for both primary and backup, continuing without socket',\n loggerContext\n );\n log.warn(\n 'All Mobius socket connection attempts exhausted for both primary and backup, continuing without socket',\n loggerContext\n );\n }\n\n private registerMobiusSocketListener() {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.REGISTER_MOBIUS_SOCKET_LISTENER,\n });\n this.sdkConnector.registerMobiusSocketListener<MobiusAsyncEvent>(\n 'event:async_event',\n (event) => {\n this.handleMobiusAsyncEvent(event);\n }\n );\n\n log.info('Successfully registered listener for Mobius events', {\n file: CALLING_CLIENT_FILE,\n method: METHODS.REGISTER_MOBIUS_SOCKET_LISTENER,\n });\n }\n\n // private unregisterMobiusSocketListener() {\n // log.info(METHOD_START_MESSAGE, {\n // file: CALLING_CLIENT_FILE,\n // method: METHODS.UNREGISTER_MOBIUS_SOCKET_LISTENER,\n // });\n // this.sdkConnector.unregisterMobiusSocketListener('async_event');\n // }\n\n private handleMobiusAsyncEvent = async (event?: MobiusAsyncEvent) => {\n log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.HANDLE_MOBIUS_ASYNC_EVENT,\n });\n\n const eventType = event?.data.eventType;\n\n if (!eventType) {\n log.warn('Dropping unsupported mobius socket payload', {\n file: CALLING_CLIENT_FILE,\n method: METHODS.HANDLE_MOBIUS_ASYNC_EVENT,\n });\n\n return;\n }\n\n if (eventType === MobiusEventType.REGISTRATION_DOWN) {\n // const line = Object.values(this.lineDict)[0];\n // line.registration.handleRegistrationDownEvent(event);\n\n return;\n }\n\n if (eventType.startsWith('mobius.')) {\n this.callManager.dequeueWsEvents(event);\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 log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.REGISTER_CALLS_CLEARED_LISTENER,\n });\n\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 log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.CALLS_CLEARED_HANDLER,\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 {registration} = Object.values(this.lineDict)[0];\n\n if (!registration.isDeviceRegistered()) {\n await this.mutex.runExclusive(async () => {\n if (registration.isReconnectPending()) {\n log.info('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 log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.REGISTER_SESSIONS_LISTENER,\n });\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 log.info(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.CREATE_LINE,\n });\n const line = new Line(\n this.webex.internal.device.userId,\n this.webex.internal.device.url,\n this.mutex,\n this.apiRequest.isSocketEnabled()\n ? normalizeMobiusUris(this.primaryWssMobiusUris)\n : this.primaryMobiusUris,\n this.apiRequest.isSocketEnabled()\n ? normalizeMobiusUris(this.backupWssMobiusUris)\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 * Fetches the list of devices for a given user from Mobius.\n */\n public async getDevices(userId?: string): Promise<DeviceType[]> {\n const userid = userId || this.webex.internal.device.userId;\n if (!userid) {\n throw new Error('userId is required to fetch devices');\n }\n\n log.info(METHOD_START_MESSAGE, {file: CALLING_CLIENT_FILE, method: METHODS.GET_DEVICES});\n\n const mobiusUrls = [...this.primaryMobiusUris, ...this.backupMobiusUris];\n if (mobiusUrls.length === 0) {\n throw new Error('Mobius URLs are not available');\n }\n\n let finalError;\n for (const mobiusUrl of mobiusUrls) {\n const normalizedMobiusUrl = mobiusUrl.replace(/\\/+$/, '/');\n const uri = `${normalizedMobiusUrl}${DEVICES_ENDPOINT_RESOURCE}?userid=${encodeURIComponent(\n userid\n )}`;\n try {\n // eslint-disable-next-line no-await-in-loop\n const response = (await this.webex.request({\n uri,\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n })) as WebexRequestPayload;\n\n if (response.statusCode !== 200) {\n throw new Error(`API call failed with ${response.statusCode}`);\n }\n\n const body = response.body as Devices;\n\n // Hydrate registration deviceInfo for deregister/restore flows\n Object.values(this.lineDict)[0].registration.setDeviceInfo(body);\n Object.values(this.lineDict)[0].registration.setActiveMobiusUrl(normalizedMobiusUrl);\n\n return body.devices ?? [];\n } catch (error) {\n finalError = error;\n }\n }\n\n log.error(`Failed to fetch devices for userId ${userId}: ${JSON.stringify(finalError)}`, {\n file: CALLING_CLIENT_FILE,\n method: METHODS.GET_DEVICES,\n });\n\n throw finalError;\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: Record<string, ICall[]> = {};\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 help troubleshoot SDK issues.\n *\n * This method collects the current SDK logs including network requests, WebSocket\n * messages, and client-side events, then securely submits them to Webex's diagnostics\n * service. The returned tracking ID, feedbackID can be provided to Webex support for faster\n * issue resolution.\n * @returns Promise<UploadLogsResponse>\n * @throws Error\n */\n public async uploadLogs(): Promise<UploadLogsResponse> {\n const result = await uploadLogs({}, true);\n if (!result) {\n throw new Error('Failed to upload logs: No response received.');\n }\n\n return result;\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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","ignoreList":[]}
|
|
@@ -111,7 +111,9 @@ describe('CallingClient Tests', function () {
|
|
|
111
111
|
}
|
|
112
112
|
}, _callee);
|
|
113
113
|
})));
|
|
114
|
-
|
|
114
|
+
|
|
115
|
+
// MOBIUS TODO: Remove the skip later. Added for testing purposes.
|
|
116
|
+
it.skip('should set mobiusServiceHost correctly when URL is valid', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
115
117
|
var callingClient;
|
|
116
118
|
return _regenerator.default.wrap(function (_context2) {
|
|
117
119
|
while (1) switch (_context2.prev = _context2.next) {
|
|
@@ -446,7 +448,9 @@ describe('CallingClient Tests', function () {
|
|
|
446
448
|
callingClient = undefined;
|
|
447
449
|
jest.useRealTimers();
|
|
448
450
|
});
|
|
449
|
-
|
|
451
|
+
|
|
452
|
+
// MOBIUS TODO: Remove the skip later. Added for testing purposes.
|
|
453
|
+
it.skip('verify successful mobius server url discovery', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee13() {
|
|
450
454
|
return _regenerator.default.wrap(function (_context13) {
|
|
451
455
|
while (1) switch (_context13.prev = _context13.next) {
|
|
452
456
|
case 0:
|
|
@@ -479,7 +483,9 @@ describe('CallingClient Tests', function () {
|
|
|
479
483
|
}
|
|
480
484
|
}, _callee13);
|
|
481
485
|
})));
|
|
482
|
-
|
|
486
|
+
|
|
487
|
+
// MOBIUS TODO: Remove the skip later. Added for testing purposes.
|
|
488
|
+
it.skip('when region discovery succeeds but region based mobius url discovery fails with final error', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee14() {
|
|
483
489
|
var failurePayload;
|
|
484
490
|
return _regenerator.default.wrap(function (_context14) {
|
|
485
491
|
while (1) switch (_context14.prev = _context14.next) {
|
|
@@ -518,7 +524,9 @@ describe('CallingClient Tests', function () {
|
|
|
518
524
|
}
|
|
519
525
|
}, _callee14);
|
|
520
526
|
})));
|
|
521
|
-
|
|
527
|
+
|
|
528
|
+
// MOBIUS TODO: Remove the skip later. Added for testing purposes.
|
|
529
|
+
it.skip('Verify successful mobius server url discovery after initializing callingClient through a config', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee15() {
|
|
522
530
|
return _regenerator.default.wrap(function (_context15) {
|
|
523
531
|
while (1) switch (_context15.prev = _context15.next) {
|
|
524
532
|
case 0:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_asyncMutex","require","Media","_interopRequireWildcard","_types","_testUtil","_types2","_types3","_Logger","_interopRequireDefault","_CallingClient","_Utils","utils","_callManager","_constants","_callRecordFixtures","_callingClientFixtures","_line","_registerFixtures","_constants2","_types4","_windowsChromiumIceWarmupUtils","_request","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t5","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys2","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","jest","mock","getMobiusSocketInstance","fn","mockReturnValue","sendWssRequest","connect","on","off","global","crypto","randomUUID","spyOn","mockResolvedValue","undefined","describe","handleErrorSpy","setLoggerSpy","webex","getTestUtilsWebex","internal","services","mockCatalogUS","getMobiusClusters","mockUSServiceHosts","defaultServiceIndicator","ServiceIndicator","CALLING","callManager","getCallManager","infoSpy","log","logSpy","warnSpy","originalProcessNextTick","process","nextTick","flushPromises","_promise","resolve","beforeEach","APIRequest","resetInstance","getInstance","isMobiusSocketEnabled","afterAll","removeAllListeners","it","_asyncToGenerator2","_regenerator","mark","_callee","callingClient","wrap","_context","prev","next","_hostCatalog","_serviceUrls","mobius","createClient","logger","level","LOGGER","INFO","sent","expect","toHaveBeenCalledTimes","toStrictEqual","stop","_callee2","_context2","mockCatalogEU","mockEUServiceHosts","toBe","afterEach","_callee4","_context4","_callee3","_context3","toBeTruthy","not","toThrow","Error","_callee6","serviceDataObj","_context6","indicator","domain","_callee5","_context5","serviceData","_callee7","_t","_context7","message","toEqual","assertions","_callee8","_t2","_context8","_callee0","_context0","_callee9","_context9","_callee1","_t3","_context1","CONTACT_CENTER","_callee11","_context11","_callee10","_context10","_callee12","_context12","getLoggingLevel","clearAllTimers","clearAllMocks","useRealTimers","_callee13","_context13","request","mockResolvedValueOnce","regionPayload","discoveryPayload","toBeCalledTimes","primaryMobiusUris","primaryUrl","toBeCalled","nthCalledWith","method","uri","concat","DISCOVERY_URL","addAuthHeader","headers","SPARK_USER_AGENT","getMockRequestTemplate","URL_ENDPOINT","regionBody","clientRegion","countryCode","_callee14","failurePayload","_context14","statusCode","mockRejectedValueOnce","toBeCalledWith","anything","file","CALLING_CLIENT_FILE","objectContaining","_callee15","_context15","mockReset","discovery","region","country","toHaveBeenCalledWith","METHOD_START_MESSAGE","toBeCalledOnceWith","toHaveBeenCalled","mobiusCluster","checkCluster","_ref16","_callee16","mockServiceHosts","mockCatalog","_context16","_x","_x2","each","_ref17","_callee17","clusterName","_t4","_context17","abrupt","mockIntServiceHosts","mockCatalogUSInt","mockEUIntServiceHosts","mockCatalogEUInt","_x3","line","_callee18","_context18","_values","lineDict","_keys","getLines","reg","windowEventSpy","deRegSpy","restoreSpy","restartRegisterSpy","registerSpy","metricSpy","_callee19","_context19","useFakeTimers","registrationPayload","window","registration","register","callCollection","_callee20","g","clearKeepaliveSpy","offlineCb","_context20","fetch","calls","stringContaining","_callee21","_context21","any","_callee22","onlineCb","_context22","String","_callee23","mercuryOfflineCb","_context23","mercury","METRIC_EVENT","CONNECTION_ERROR","CONNECTION_ACTION","MERCURY_DOWN","METRIC_TYPE","BEHAVIORAL","_callee24","handleConnectionRestoreSpy","mercuryOnlineCb","_context24","advanceTimersByTime","NETWORK_FLAP_TIMEOUT","REGISTRATION_FILE","getActiveMobiusUrl","NETWORK_FLAP","_callee25","_context25","setStatus","RegistrationStatus","IDLE","_callee26","callKeepaliveSpy","deleteSpy","_context26","createCall","getActiveCalls","state","value","_callee27","_context27","MERCURY_UP","mutex","Mutex","userId","device","clientDeviceUri","url","mobiusUris","filterMobiusUris","getMobiusDiscoveryResponse","URL","primary","backupMobiusUris","backup","beforeAll","_callee28","_context28","Line","end","getSDKConnector","getWebex","makeCall","address","type","CallType","URI","getConnectedCall","mockCall","mockCall2","mockActiveCalls","mockCorrelationId","mockCorrelationId2","mockDeviceId","lineId","mockDeviceId2","mockCall3","mockCorrelationId3","mockLineId","mockLineId2","mockOn","_callee29","_context29","done","CALLING_CLIENT_EVENT_KEYS","USER_SESSION_INFO","event","data","MOCK_SESSION_EVENT","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","callSessionCallback","userSessions","MOCK_MULTIPLE_SESSIONS_EVENT","asyncEventCallback","mobiusSocketMock","_callee30","asyncEventOnCall","_context30","requireMock","mockClear","find","_callee31","callEventSpy","_context31","mockImplementation","eventType","callId","callUrl","deviceId","correlationId","primaryMobius","backupMobius","_callee32","_context32","_callee33","devices","responsePayload","response","_context33","status","lastSeen","addresses","body","getDevices","HTTP_METHODS","GET","service","ALLOWED_SERVICES","MOBIUS","CISCO_DEVICE_URL","CALLING_USER_AGENT","_callee34","requestCalls","_context34","origRTCPeerConnection","_Class","RTCPeerConnection","_classCallCheck2","constructor","instances","_createClass2","key","createDataChannel","addTransceiver","createOffer","sdp","setLocalDescription","desc","localDescription","setRemoteDescription","remoteDescription","createAnswer","addIceCandidate","close","addEventListener","removeEventListener","_callee35","_context35","windowsChromiumIceWarmup","resolves"],"sources":["CallingClient.test.ts"],"sourcesContent":["import {Mutex} from 'async-mutex';\nimport * as Media from '@webex/internal-media-core';\nimport {LOGGER} from '../Logger/types';\nimport {\n getTestUtilsWebex,\n getMockRequestTemplate,\n getMobiusDiscoveryResponse,\n} from '../common/testUtil';\nimport {\n CallType,\n RegistrationStatus,\n ServiceIndicator,\n ALLOWED_SERVICES,\n HTTP_METHODS,\n WebexRequestPayload,\n} from '../common/types';\n/* eslint-disable dot-notation */\nimport {CALLING_CLIENT_EVENT_KEYS, CallSessionEvent, MOBIUS_EVENT_KEYS} from '../Events/types';\nimport log from '../Logger';\nimport {createClient} from './CallingClient';\nimport {ICallingClient} from './types';\nimport * as utils from '../common/Utils';\nimport {getCallManager} from './calling/callManager';\nimport {\n CALLING_CLIENT_FILE,\n DISCOVERY_URL,\n NETWORK_FLAP_TIMEOUT,\n REGISTRATION_FILE,\n CALLING_USER_AGENT,\n CISCO_DEVICE_URL,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n} from './constants';\nimport {MOCK_MULTIPLE_SESSIONS_EVENT, MOCK_SESSION_EVENT} from './callRecordFixtures';\nimport {ILine} from './line/types';\nimport {\n regionBody,\n regionPayload,\n primaryUrl,\n discoveryPayload,\n registrationPayload,\n mockEUServiceHosts,\n mockIntServiceHosts,\n mockEUIntServiceHosts,\n mockCatalogEU,\n mockCatalogUSInt,\n mockCatalogUS,\n mockCatalogEUInt,\n mockUSServiceHosts,\n} from './callingClientFixtures';\nimport Line from './line';\nimport {filterMobiusUris} from '../common/Utils';\nimport {URL} from './registration/registerFixtures';\nimport {ICall} from './calling/types';\nimport {ServiceHost} from '../SDKConnector/types';\nimport {METHOD_START_MESSAGE} from '../common/constants';\nimport {METRIC_EVENT, CONNECTION_ACTION, METRIC_TYPE} from '../Metrics/types';\nimport windowsChromiumIceWarmup from './windowsChromiumIceWarmupUtils';\nimport {APIRequest} from './utils/request';\n\njest.mock('@webex/internal-plugin-mobius-socket', () => ({\n getMobiusSocketInstance: jest.fn().mockReturnValue({\n sendWssRequest: jest.fn(),\n connect: jest.fn(),\n on: jest.fn(),\n off: jest.fn(),\n }),\n}));\n\nglobal.crypto = {\n randomUUID: () => '12345678-1234-5678-1234-567812345678',\n} as unknown as Crypto;\n\njest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);\n\ndescribe('CallingClient Tests', () => {\n // Common initializers\n\n const handleErrorSpy = jest.spyOn(utils, 'handleCallingClientErrors');\n const setLoggerSpy = jest.spyOn(Media, 'setLogger');\n const webex = getTestUtilsWebex();\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockUSServiceHosts);\n const defaultServiceIndicator = ServiceIndicator.CALLING;\n const callManager = getCallManager(webex, defaultServiceIndicator);\n\n const infoSpy = jest.spyOn(log, 'info');\n const logSpy = jest.spyOn(log, 'log');\n const warnSpy = jest.spyOn(log, 'warn');\n\n const originalProcessNextTick = process.nextTick;\n function flushPromises() {\n return new Promise((resolve) => {\n originalProcessNextTick(resolve);\n });\n }\n\n beforeEach(() => {\n APIRequest.resetInstance();\n APIRequest.getInstance({webex, isMobiusSocketEnabled: false});\n });\n\n describe('CallingClient pick Mobius cluster using Service Host Tests', () => {\n afterAll(() => {\n callManager.removeAllListeners();\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1';\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n });\n\n it('should use default mobius service host when Service URL is invalid', async () => {\n webex.internal.services._hostCatalog = mockCatalogUS;\n webex.internal.services._serviceUrls.mobius = 'invalid-url';\n\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(setLoggerSpy).toHaveBeenCalledTimes(1);\n expect(callingClient['mobiusClusters']).toStrictEqual(mockUSServiceHosts);\n });\n\n it('should set mobiusServiceHost correctly when URL is valid', async () => {\n webex.internal.services._hostCatalog = mockCatalogEU;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockEUServiceHosts);\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1';\n\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(callingClient['mobiusHost']).toBe(\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1'\n );\n expect(callingClient['mobiusClusters']).toStrictEqual(mockEUServiceHosts);\n });\n });\n\n describe('ServiceData tests', () => {\n let callingClient: ICallingClient | undefined;\n\n afterEach(() => {\n callManager.removeAllListeners();\n callingClient = undefined;\n });\n\n /**\n * No input sdk config to callingClient, it should default to service type\n * calling and empty domain value.\n */\n it('Verify valid calling serviceData with no input sdk config', async () => {\n expect(async () => {\n callingClient = await createClient(webex);\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying empty string for\n * both indicator and domain in it.\n *\n * It should default to service type calling and empty domain value.\n *\n */\n it('Verify invalid empty service indicator, empty domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: '', domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying invalid value for indicator\n * and valid domain type string for domain field in it.\n *\n * It should throw error and abort execution as indicator value is invalid.\n *\n * INDICATOR value MUST MATCH with one of the values in ServiceIndicator enum.\n */\n it('Verify invalid service indicator, valid domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: 'test', domain: 'test.example.com'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual(\n 'Invalid service indicator, Allowed values are: calling, contactcenter and guestcalling'\n );\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', but an invalid domain type string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type calling is allowed to be empty but if it carries a non-empty\n * string then it must be of valid domain type.\n */\n it('CALLING: verify invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: 'test'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', and an empty string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'calling' is allowed to be empty.\n */\n it('CALLING: verify valid empty service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter', but an empty string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.\n */\n it('ContactCenter: verify empty invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CONTACT_CENTER, domain: ''};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter' , and a valid domain type string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.\n */\n it('ContactCenter: verify valid service domain', async () => {\n const serviceDataObj = {\n indicator: ServiceIndicator.CONTACT_CENTER,\n domain: 'test.example.com',\n };\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n it('Get current log level', async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(callingClient).toBeTruthy();\n expect(callingClient.getLoggingLevel).toBeTruthy();\n expect(callingClient.getLoggingLevel()).toEqual(LOGGER.INFO);\n });\n });\n\n describe('Mobius Server discovery tests', () => {\n let callingClient;\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('verify successful mobius server url discovery', async () => {\n webex.request.mockResolvedValueOnce(regionPayload).mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).toBeCalledTimes(2);\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n expect(handleErrorSpy).not.toBeCalled();\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n uri: `${DISCOVERY_URL}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(webex.request).nthCalledWith(2, {\n method: 'GET',\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n });\n });\n\n it('when region discovery succeeds but region based mobius url discovery fails with final error', async () => {\n const failurePayload = {\n statusCode: 401,\n };\n\n webex.request.mockResolvedValueOnce(regionPayload).mockRejectedValueOnce(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(handleErrorSpy).toBeCalledWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n expect(webex.request).toBeCalledTimes(2);\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n uri: `${DISCOVERY_URL}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n expect.objectContaining({\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n })\n );\n });\n\n it('Verify successful mobius server url discovery after initializing callingClient through a config', async () => {\n infoSpy.mockReset();\n webex.request.mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {\n discovery: {\n region: 'AP-SOUTHEAST',\n country: 'IN',\n },\n logger: {\n level: LOGGER.INFO,\n },\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: 'CallingClient',\n method: 'getMobiusServers',\n });\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n method: 'GET',\n });\n\n expect(handleErrorSpy).not.toHaveBeenCalled();\n });\n });\n\n describe('Testing each cluster present withing host catalog', () => {\n const mobiusCluster = [\n 'mobius-eu-central-1.prod.infra.webex.com',\n 'mobius-us-east-1.int.infra.webex.com',\n 'mobius-eu-central-1.int.infra.webex.com',\n ];\n\n const checkCluster = async (\n mockServiceHosts: ServiceHost[],\n mockCatalog: Record<string, ServiceHost[]>\n ) => {\n webex.internal.services._hostCatalog = mockCatalog;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockServiceHosts);\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(callingClient['mobiusClusters']).toStrictEqual(mockServiceHosts);\n };\n\n it.each(mobiusCluster)('%s', async (clusterName) => {\n switch (clusterName) {\n case 'mobius-eu-central-1.prod.infra.webex.com':\n checkCluster(mockEUServiceHosts, mockCatalogEU);\n break;\n case 'mobius-us-east-1.int.infra.webex.com':\n checkCluster(mockIntServiceHosts, mockCatalogUSInt);\n break;\n case 'mobius-eu-central-1.int.infra.webex.com':\n checkCluster(mockEUIntServiceHosts, mockCatalogEUInt);\n break;\n default:\n break;\n }\n });\n });\n\n describe('Line creation tests', () => {\n let callingClient;\n let line;\n\n beforeEach(async () => {\n callingClient = await createClient(webex);\n line = Object.values(callingClient.lineDict)[0];\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('verify line dict successfully created', () => {\n expect(callingClient.lineDict).toBeTruthy();\n expect(line).toBeTruthy();\n expect(Object.keys(callingClient.lineDict).length).toEqual(1);\n });\n\n it('verify getLines response', () => {\n expect(callingClient.getLines).toBeTruthy();\n expect(callingClient.getLines()).toEqual(callingClient.lineDict);\n });\n });\n\n describe('Connectivity and Mercury event handlers', () => {\n let callingClient: ICallingClient;\n let line;\n let reg;\n let windowEventSpy: jest.SpyInstance;\n let deRegSpy;\n let restoreSpy;\n let restartRegisterSpy;\n let registerSpy;\n let metricSpy;\n\n beforeEach(async () => {\n jest.useFakeTimers();\n webex.request\n .mockResolvedValueOnce(regionPayload)\n .mockResolvedValueOnce(discoveryPayload)\n .mockResolvedValueOnce(registrationPayload);\n\n windowEventSpy = jest.spyOn(window, 'addEventListener');\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n line = Object.values(callingClient.lineDict)[0] as ILine;\n reg = line.registration;\n await line.register();\n\n deRegSpy = jest.spyOn(reg, 'deregister');\n restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n restartRegisterSpy = jest.spyOn(reg, 'restartRegistration');\n registerSpy = jest.spyOn(reg, 'attemptRegistrationWithServers');\n metricSpy = jest.spyOn(callingClient['metricManager'], 'submitConnectionMetrics');\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callingClient['callManager'].callCollection = {};\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('window offline handler sets networkDown and clears keepalive when network is unreachable', async () => {\n const g = global;\n g.fetch = jest.fn().mockRejectedValueOnce(new Error('network fail'));\n\n const clearKeepaliveSpy = jest.spyOn(reg, 'clearKeepaliveTimer');\n\n const offlineCb = windowEventSpy.mock.calls[1][1];\n await offlineCb();\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Network connectivity probe failed'),\n {\n file: CALLING_CLIENT_FILE,\n method: 'pingExternal',\n }\n );\n expect(callingClient['isNetworkDown']).toBe(true);\n expect(clearKeepaliveSpy).toHaveBeenCalled();\n });\n\n it('window offline handler does not clear keepalive when network is reachable', async () => {\n const g = global;\n g.fetch = jest.fn().mockResolvedValueOnce({});\n\n const clearKeepaliveSpy = jest.spyOn(reg, 'clearKeepaliveTimer');\n\n const offlineCb = windowEventSpy.mock.calls[1][1];\n await offlineCb();\n\n expect(g.fetch).toHaveBeenCalledWith(\n 'https://www.google.com/generate_204',\n expect.any(Object)\n );\n expect(callingClient['isNetworkDown']).toBe(false);\n expect(clearKeepaliveSpy).not.toHaveBeenCalled();\n });\n\n it('window online handler sets networkUpTimestamp and logs', async () => {\n const onlineCb = windowEventSpy.mock.calls[0][1];\n await onlineCb();\n\n expect(callingClient['networkUpTimestamp']).toEqual(expect.any(String));\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: 'handleNetworkOnline',\n });\n });\n\n it('mercury offline submits metrics and sets timestamp', async () => {\n const mercuryOfflineCb = webex.internal.mercury.on.mock.calls[1][1];\n await mercuryOfflineCb();\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Mercury down, waiting for connection to be up'),\n {\n file: CALLING_CLIENT_FILE,\n method: 'handleMercuryOffline',\n }\n );\n expect(callingClient['mercuryDownTimestamp']).toEqual(expect.any(String));\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_DOWN,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n ''\n );\n });\n\n it('handles reconnection with no active calls after network flap, once mercury comes back up', async () => {\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n\n callingClient['isNetworkDown'] = true;\n callingClient['networkDownTimestamp'] = '2023-01-01T00:00:00.000Z';\n callingClient['networkUpTimestamp'] = '2023-01-01T00:01:00.000Z';\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n // Run the interval once\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 100);\n\n await flushPromises();\n\n expect(handleConnectionRestoreSpy).toHaveBeenCalledWith(true);\n expect(logSpy).toHaveBeenCalledWith(\n 'Network is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n expect(deRegSpy).toHaveBeenCalledWith();\n expect(restoreSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n '2023-01-01T00:00:00.000Z',\n '2023-01-01T00:01:00.000Z'\n );\n });\n\n it('no reconnection for idle registration with no active calls after network flap, once mercury comes back up', async () => {\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n\n callingClient['isNetworkDown'] = true;\n callingClient['networkDownTimestamp'] = '2023-01-01T00:00:00.000Z';\n callingClient['networkUpTimestamp'] = '2023-01-01T00:01:00.000Z';\n reg.setStatus(RegistrationStatus.IDLE);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n // Run the interval once\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 100);\n\n await flushPromises();\n\n expect(handleConnectionRestoreSpy).not.toHaveBeenCalledWith(true);\n expect(logSpy).not.toHaveBeenCalledWith(\n 'Network is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n expect(deRegSpy).not.toHaveBeenCalledWith();\n expect(restoreSpy).not.toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).not.toHaveBeenCalledWith('handleConnectionRestoration');\n expect(registerSpy).not.toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).not.toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n '2023-01-01T00:00:00.000Z',\n '2023-01-01T00:01:00.000Z'\n );\n });\n\n it('handle calls status check once mercury comes back up after a network flap', async () => {\n callingClient['isNetworkDown'] = true;\n const call = callingClient['callManager'].createCall();\n const callKeepaliveSpy = jest\n .spyOn(call, 'postStatus')\n .mockRejectedValueOnce(new Error('keepalive fail'));\n const deleteSpy = jest.spyOn(call, 'delete');\n expect(Object.keys(callingClient['callManager'].getActiveCalls()).length).toBe(1);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n expect(callKeepaliveSpy).toHaveBeenCalled();\n\n await flushPromises();\n\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Call Keepalive failed'), {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n });\n expect(call['callStateMachine'].state.value).toBe('S_CALL_CLEARED');\n expect(deleteSpy).toHaveBeenCalled();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n expect.any(String)\n );\n });\n\n it('handle calls status check once mercury comes back up with stable network', async () => {\n const call = callingClient['callManager'].createCall();\n const callKeepaliveSpy = jest\n .spyOn(call, 'postStatus')\n .mockRejectedValueOnce(new Error('keepalive fail'));\n const deleteSpy = jest.spyOn(call, 'delete');\n expect(Object.keys(callingClient['callManager'].getActiveCalls()).length).toBe(1);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n expect(callKeepaliveSpy).toHaveBeenCalled();\n\n await flushPromises();\n\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Call Keepalive failed'), {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n });\n expect(call['callStateMachine'].state.value).toBe('S_CALL_CLEARED');\n expect(deleteSpy).toHaveBeenCalled();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_UP,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n expect.any(String)\n );\n });\n });\n\n // Calling related test cases\n describe('Calling tests', () => {\n const mutex = new Mutex();\n const userId = webex.internal.device.userId;\n const clientDeviceUri = webex.internal.device.url;\n const mobiusUris = filterMobiusUris(getMobiusDiscoveryResponse(), URL);\n const primaryMobiusUris = jest.fn(() => mobiusUris.primary);\n const backupMobiusUris = jest.fn(() => mobiusUris.backup);\n\n let callingClient;\n let line: Line;\n\n beforeAll(async () => {\n callingClient = await createClient(webex);\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO\n );\n const calls = Object.values(callManager.getActiveCalls());\n calls.forEach((call) => {\n call.end();\n });\n });\n\n afterAll(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify calling client object', () => {\n expect(callingClient.getSDKConnector().getWebex().internal.device.userId).toBe(\n '8a67806f-fc4d-446b-a131-31e71ea5b0e9'\n );\n });\n\n it('returns undefined when there is no connected call', () => {\n line.register();\n line.makeCall({address: '123456', type: CallType.URI});\n expect(callingClient.getConnectedCall()).toEqual(undefined);\n });\n\n it('returns the connected call', () => {\n line.register();\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n // Connected call\n mockCall['connected'] = true;\n mockCall['earlyMedia'] = false;\n mockCall['callStateMachine'].state.value = 'S_CALL_ESTABLISHED';\n\n // Held call\n mockCall2['connected'] = true;\n mockCall2['held'] = true;\n mockCall2['earlyMedia'] = false;\n mockCall2['callStateMachine'].state.value = 'S_CALL_HOLD';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getConnectedCall()).toEqual(mockCall);\n });\n it('returns all active calls', () => {\n callingClient.lineDict = {\n mockDeviceId: {lineId: 'mockLineId'} as ILine,\n mockDeviceId2: {lineId: 'mockLineId2'} as ILine,\n };\n\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n const mockCall3 = line.makeCall({address: '9101', type: CallType.URI});\n\n mockCall.lineId = 'mockLineId';\n mockCall2.lineId = 'mockLineId2';\n mockCall3.lineId = 'mockLineId2';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n mockCorrelationId3: mockCall3 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getActiveCalls()).toEqual({\n mockLineId: [mockCall],\n mockLineId2: [mockCall2, mockCall3],\n });\n });\n });\n\n describe('Call Session Event test', () => {\n const mockOn = webex.internal.mercury.on;\n let callingClient: ICallingClient;\n\n beforeEach(async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify the recent user session event ', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT.data);\n done();\n });\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_SESSION_EVENT);\n });\n\n it('drop the recent user session if there is no webex calling type', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data.userSessions.userSessions.length).toEqual(1);\n done();\n });\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_MULTIPLE_SESSIONS_EVENT);\n });\n });\n\n describe('Mobius async_event routing', () => {\n let callingClient: ICallingClient;\n let asyncEventCallback;\n let mobiusSocketMock;\n\n beforeEach(async () => {\n mobiusSocketMock = (\n jest.requireMock('@webex/internal-plugin-mobius-socket') as {\n getMobiusSocketInstance: (w: unknown) => unknown;\n }\n ).getMobiusSocketInstance(webex) as {\n on: jest.Mock;\n off: jest.Mock;\n };\n (mobiusSocketMock.on as jest.Mock).mockClear();\n (mobiusSocketMock.off as jest.Mock).mockClear();\n\n callingClient = await createClient(webex, {\n logger: {level: LOGGER.INFO},\n isMobiusSocketEnabled: true,\n });\n\n const asyncEventOnCall = (mobiusSocketMock.on as jest.Mock).mock.calls.find(\n (call) => call[0] === 'event:async_event'\n );\n asyncEventCallback = asyncEventOnCall[1];\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('routes mobius.* async events to callManager', async () => {\n const callEventSpy = jest\n .spyOn(callingClient['callManager'], 'dequeueWsEvents')\n .mockImplementation(() => undefined);\n\n await asyncEventCallback({\n type: 'async_event',\n data: {\n eventType: 'mobius.call',\n callId: 'fcf86aa5-5539-4c9f-8b72-667786ae9b6c',\n callUrl: 'https://mobius-a.wbx2.com/api/v1/calling/web/devices/d1/calls/c1',\n deviceId: 'd1',\n correlationId: 'corr-1',\n },\n });\n\n expect(callEventSpy).toHaveBeenCalledWith(\n expect.objectContaining({\n type: 'async_event',\n data: expect.objectContaining({\n eventType: 'mobius.call',\n }),\n })\n );\n });\n });\n\n describe('getDevices', () => {\n let callingClient: ICallingClient;\n const primaryMobius = 'https://mobius.primary/api/v1/calling/web/';\n const backupMobius = 'https://mobius.backup/api/v1/calling/web/';\n\n beforeEach(async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n callingClient.primaryMobiusUris = [primaryMobius];\n callingClient.backupMobiusUris = [backupMobius];\n (webex.request as jest.Mock).mockClear();\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n });\n\n it('fetches devices for the provided userId', async () => {\n const devices = [\n {\n deviceId: 'device-1',\n uri: 'https://mobius.test/api/v1/calling/web/devices/device-1',\n status: 'ACTIVE',\n lastSeen: '2024-01-01T00:00:00Z',\n addresses: [],\n clientDeviceUri: 'client-device-uri',\n },\n ];\n\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: {userId: 'user-123', devices},\n });\n\n (webex.request as jest.Mock).mockResolvedValue(responsePayload);\n\n const response = await callingClient.getDevices('user-123');\n\n expect(webex.request).toHaveBeenCalledWith({\n uri: 'https://mobius.primary/api/v1/calling/web/devices?userid=user-123',\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n expect(response).toEqual(devices);\n });\n\n it('falls back to backup Mobius when primary fails', async () => {\n const devices = [\n {\n deviceId: 'device-2',\n uri: 'https://mobius.backup/api/v1/calling/web/devices/device-2',\n status: 'ACTIVE',\n lastSeen: '2024-01-01T00:00:00Z',\n addresses: [],\n clientDeviceUri: 'client-device-uri',\n },\n ];\n\n const failurePayload = {\n statusCode: 404,\n };\n\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: {userId: 'user-123', devices},\n });\n\n (webex.request as jest.Mock)\n .mockRejectedValueOnce(failurePayload)\n .mockResolvedValueOnce(responsePayload);\n\n const response = await callingClient.getDevices('user-123');\n\n const requestCalls = (webex.request as jest.Mock).mock.calls;\n expect(requestCalls[0][0]).toEqual({\n uri: 'https://mobius.primary/api/v1/calling/web/devices?userid=user-123',\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n expect(requestCalls[1][0]).toEqual({\n uri: 'https://mobius.backup/api/v1/calling/web/devices?userid=user-123',\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n expect(response).toEqual(devices);\n });\n });\n\n describe('windowsChromiumIceWarmup', () => {\n let origRTCPeerConnection: any;\n\n beforeAll(() => {\n origRTCPeerConnection = global.RTCPeerConnection;\n // Minimal mock for RTCPeerConnection\n global.RTCPeerConnection = class {\n static instances: any[] = [];\n iceGatheringState = 'complete';\n localDescription = null;\n remoteDescription = null;\n onicecandidate: ((e: any) => void) | null = null;\n constructor() {\n (this.constructor as any).instances.push(this);\n }\n\n createDataChannel() {\n return {};\n }\n\n addTransceiver() {\n return {};\n }\n\n createOffer() {\n return Promise.resolve({sdp: 'offer', type: 'offer'});\n }\n\n setLocalDescription(desc: any) {\n this.localDescription = desc;\n\n return Promise.resolve();\n }\n\n setRemoteDescription(desc: any) {\n this.remoteDescription = desc;\n\n return Promise.resolve();\n }\n\n createAnswer() {\n return Promise.resolve({sdp: 'answer', type: 'answer'});\n }\n\n addIceCandidate() {\n return Promise.resolve();\n }\n\n close() {}\n addEventListener() {}\n removeEventListener() {}\n };\n });\n\n afterAll(() => {\n global.RTCPeerConnection = origRTCPeerConnection;\n });\n\n it('should complete without throwing', async () => {\n await expect(windowsChromiumIceWarmup({})).resolves.not.toThrow();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_asyncMutex","require","Media","_interopRequireWildcard","_types","_testUtil","_types2","_types3","_Logger","_interopRequireDefault","_CallingClient","_Utils","utils","_callManager","_constants","_callRecordFixtures","_callingClientFixtures","_line","_registerFixtures","_constants2","_types4","_windowsChromiumIceWarmupUtils","_request","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t5","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys2","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","jest","mock","getMobiusSocketInstance","fn","mockReturnValue","sendWssRequest","connect","on","off","global","crypto","randomUUID","spyOn","mockResolvedValue","undefined","describe","handleErrorSpy","setLoggerSpy","webex","getTestUtilsWebex","internal","services","mockCatalogUS","getMobiusClusters","mockUSServiceHosts","defaultServiceIndicator","ServiceIndicator","CALLING","callManager","getCallManager","infoSpy","log","logSpy","warnSpy","originalProcessNextTick","process","nextTick","flushPromises","_promise","resolve","beforeEach","APIRequest","resetInstance","getInstance","isMobiusSocketEnabled","afterAll","removeAllListeners","it","_asyncToGenerator2","_regenerator","mark","_callee","callingClient","wrap","_context","prev","next","_hostCatalog","_serviceUrls","mobius","createClient","logger","level","LOGGER","INFO","sent","expect","toHaveBeenCalledTimes","toStrictEqual","stop","skip","_callee2","_context2","mockCatalogEU","mockEUServiceHosts","toBe","afterEach","_callee4","_context4","_callee3","_context3","toBeTruthy","not","toThrow","Error","_callee6","serviceDataObj","_context6","indicator","domain","_callee5","_context5","serviceData","_callee7","_t","_context7","message","toEqual","assertions","_callee8","_t2","_context8","_callee0","_context0","_callee9","_context9","_callee1","_t3","_context1","CONTACT_CENTER","_callee11","_context11","_callee10","_context10","_callee12","_context12","getLoggingLevel","clearAllTimers","clearAllMocks","useRealTimers","_callee13","_context13","request","mockResolvedValueOnce","regionPayload","discoveryPayload","toBeCalledTimes","primaryMobiusUris","primaryUrl","toBeCalled","nthCalledWith","method","uri","concat","DISCOVERY_URL","addAuthHeader","headers","SPARK_USER_AGENT","getMockRequestTemplate","URL_ENDPOINT","regionBody","clientRegion","countryCode","_callee14","failurePayload","_context14","statusCode","mockRejectedValueOnce","toBeCalledWith","anything","file","CALLING_CLIENT_FILE","objectContaining","_callee15","_context15","mockReset","discovery","region","country","toHaveBeenCalledWith","METHOD_START_MESSAGE","toBeCalledOnceWith","toHaveBeenCalled","mobiusCluster","checkCluster","_ref16","_callee16","mockServiceHosts","mockCatalog","_context16","_x","_x2","each","_ref17","_callee17","clusterName","_t4","_context17","abrupt","mockIntServiceHosts","mockCatalogUSInt","mockEUIntServiceHosts","mockCatalogEUInt","_x3","line","_callee18","_context18","_values","lineDict","_keys","getLines","reg","windowEventSpy","deRegSpy","restoreSpy","restartRegisterSpy","registerSpy","metricSpy","_callee19","_context19","useFakeTimers","registrationPayload","window","registration","register","callCollection","_callee20","g","clearKeepaliveSpy","offlineCb","_context20","fetch","calls","stringContaining","_callee21","_context21","any","_callee22","onlineCb","_context22","String","_callee23","mercuryOfflineCb","_context23","mercury","METRIC_EVENT","CONNECTION_ERROR","CONNECTION_ACTION","MERCURY_DOWN","METRIC_TYPE","BEHAVIORAL","_callee24","handleConnectionRestoreSpy","mercuryOnlineCb","_context24","advanceTimersByTime","NETWORK_FLAP_TIMEOUT","REGISTRATION_FILE","getActiveMobiusUrl","NETWORK_FLAP","_callee25","_context25","setStatus","RegistrationStatus","IDLE","_callee26","callKeepaliveSpy","deleteSpy","_context26","createCall","getActiveCalls","state","value","_callee27","_context27","MERCURY_UP","mutex","Mutex","userId","device","clientDeviceUri","url","mobiusUris","filterMobiusUris","getMobiusDiscoveryResponse","URL","primary","backupMobiusUris","backup","beforeAll","_callee28","_context28","Line","end","getSDKConnector","getWebex","makeCall","address","type","CallType","URI","getConnectedCall","mockCall","mockCall2","mockActiveCalls","mockCorrelationId","mockCorrelationId2","mockDeviceId","lineId","mockDeviceId2","mockCall3","mockCorrelationId3","mockLineId","mockLineId2","mockOn","_callee29","_context29","done","CALLING_CLIENT_EVENT_KEYS","USER_SESSION_INFO","event","data","MOCK_SESSION_EVENT","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","callSessionCallback","userSessions","MOCK_MULTIPLE_SESSIONS_EVENT","asyncEventCallback","mobiusSocketMock","_callee30","asyncEventOnCall","_context30","requireMock","mockClear","find","_callee31","callEventSpy","_context31","mockImplementation","eventType","callId","callUrl","deviceId","correlationId","primaryMobius","backupMobius","_callee32","_context32","_callee33","devices","responsePayload","response","_context33","status","lastSeen","addresses","body","getDevices","HTTP_METHODS","GET","service","ALLOWED_SERVICES","MOBIUS","CISCO_DEVICE_URL","CALLING_USER_AGENT","_callee34","requestCalls","_context34","origRTCPeerConnection","_Class","RTCPeerConnection","_classCallCheck2","constructor","instances","_createClass2","key","createDataChannel","addTransceiver","createOffer","sdp","setLocalDescription","desc","localDescription","setRemoteDescription","remoteDescription","createAnswer","addIceCandidate","close","addEventListener","removeEventListener","_callee35","_context35","windowsChromiumIceWarmup","resolves"],"sources":["CallingClient.test.ts"],"sourcesContent":["import {Mutex} from 'async-mutex';\nimport * as Media from '@webex/internal-media-core';\nimport {LOGGER} from '../Logger/types';\nimport {\n getTestUtilsWebex,\n getMockRequestTemplate,\n getMobiusDiscoveryResponse,\n} from '../common/testUtil';\nimport {\n CallType,\n RegistrationStatus,\n ServiceIndicator,\n ALLOWED_SERVICES,\n HTTP_METHODS,\n WebexRequestPayload,\n} from '../common/types';\n/* eslint-disable dot-notation */\nimport {CALLING_CLIENT_EVENT_KEYS, CallSessionEvent, MOBIUS_EVENT_KEYS} from '../Events/types';\nimport log from '../Logger';\nimport {createClient} from './CallingClient';\nimport {ICallingClient} from './types';\nimport * as utils from '../common/Utils';\nimport {getCallManager} from './calling/callManager';\nimport {\n CALLING_CLIENT_FILE,\n DISCOVERY_URL,\n NETWORK_FLAP_TIMEOUT,\n REGISTRATION_FILE,\n CALLING_USER_AGENT,\n CISCO_DEVICE_URL,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n} from './constants';\nimport {MOCK_MULTIPLE_SESSIONS_EVENT, MOCK_SESSION_EVENT} from './callRecordFixtures';\nimport {ILine} from './line/types';\nimport {\n regionBody,\n regionPayload,\n primaryUrl,\n discoveryPayload,\n registrationPayload,\n mockEUServiceHosts,\n mockIntServiceHosts,\n mockEUIntServiceHosts,\n mockCatalogEU,\n mockCatalogUSInt,\n mockCatalogUS,\n mockCatalogEUInt,\n mockUSServiceHosts,\n} from './callingClientFixtures';\nimport Line from './line';\nimport {filterMobiusUris} from '../common/Utils';\nimport {URL} from './registration/registerFixtures';\nimport {ICall} from './calling/types';\nimport {ServiceHost} from '../SDKConnector/types';\nimport {METHOD_START_MESSAGE} from '../common/constants';\nimport {METRIC_EVENT, CONNECTION_ACTION, METRIC_TYPE} from '../Metrics/types';\nimport windowsChromiumIceWarmup from './windowsChromiumIceWarmupUtils';\nimport {APIRequest} from './utils/request';\n\njest.mock('@webex/internal-plugin-mobius-socket', () => ({\n getMobiusSocketInstance: jest.fn().mockReturnValue({\n sendWssRequest: jest.fn(),\n connect: jest.fn(),\n on: jest.fn(),\n off: jest.fn(),\n }),\n}));\n\nglobal.crypto = {\n randomUUID: () => '12345678-1234-5678-1234-567812345678',\n} as unknown as Crypto;\n\njest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);\n\ndescribe('CallingClient Tests', () => {\n // Common initializers\n\n const handleErrorSpy = jest.spyOn(utils, 'handleCallingClientErrors');\n const setLoggerSpy = jest.spyOn(Media, 'setLogger');\n const webex = getTestUtilsWebex();\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockUSServiceHosts);\n const defaultServiceIndicator = ServiceIndicator.CALLING;\n const callManager = getCallManager(webex, defaultServiceIndicator);\n\n const infoSpy = jest.spyOn(log, 'info');\n const logSpy = jest.spyOn(log, 'log');\n const warnSpy = jest.spyOn(log, 'warn');\n\n const originalProcessNextTick = process.nextTick;\n function flushPromises() {\n return new Promise((resolve) => {\n originalProcessNextTick(resolve);\n });\n }\n\n beforeEach(() => {\n APIRequest.resetInstance();\n APIRequest.getInstance({webex, isMobiusSocketEnabled: false});\n });\n\n describe('CallingClient pick Mobius cluster using Service Host Tests', () => {\n afterAll(() => {\n callManager.removeAllListeners();\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1';\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n });\n\n it('should use default mobius service host when Service URL is invalid', async () => {\n webex.internal.services._hostCatalog = mockCatalogUS;\n webex.internal.services._serviceUrls.mobius = 'invalid-url';\n\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(setLoggerSpy).toHaveBeenCalledTimes(1);\n expect(callingClient['mobiusClusters']).toStrictEqual(mockUSServiceHosts);\n });\n\n // MOBIUS TODO: Remove the skip later. Added for testing purposes.\n it.skip('should set mobiusServiceHost correctly when URL is valid', async () => {\n webex.internal.services._hostCatalog = mockCatalogEU;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockEUServiceHosts);\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1';\n\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(callingClient['mobiusHost']).toBe(\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1'\n );\n expect(callingClient['mobiusClusters']).toStrictEqual(mockEUServiceHosts);\n });\n });\n\n describe('ServiceData tests', () => {\n let callingClient: ICallingClient | undefined;\n\n afterEach(() => {\n callManager.removeAllListeners();\n callingClient = undefined;\n });\n\n /**\n * No input sdk config to callingClient, it should default to service type\n * calling and empty domain value.\n */\n it('Verify valid calling serviceData with no input sdk config', async () => {\n expect(async () => {\n callingClient = await createClient(webex);\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying empty string for\n * both indicator and domain in it.\n *\n * It should default to service type calling and empty domain value.\n *\n */\n it('Verify invalid empty service indicator, empty domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: '', domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying invalid value for indicator\n * and valid domain type string for domain field in it.\n *\n * It should throw error and abort execution as indicator value is invalid.\n *\n * INDICATOR value MUST MATCH with one of the values in ServiceIndicator enum.\n */\n it('Verify invalid service indicator, valid domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: 'test', domain: 'test.example.com'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual(\n 'Invalid service indicator, Allowed values are: calling, contactcenter and guestcalling'\n );\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', but an invalid domain type string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type calling is allowed to be empty but if it carries a non-empty\n * string then it must be of valid domain type.\n */\n it('CALLING: verify invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: 'test'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', and an empty string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'calling' is allowed to be empty.\n */\n it('CALLING: verify valid empty service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter', but an empty string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.\n */\n it('ContactCenter: verify empty invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CONTACT_CENTER, domain: ''};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter' , and a valid domain type string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.\n */\n it('ContactCenter: verify valid service domain', async () => {\n const serviceDataObj = {\n indicator: ServiceIndicator.CONTACT_CENTER,\n domain: 'test.example.com',\n };\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n it('Get current log level', async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(callingClient).toBeTruthy();\n expect(callingClient.getLoggingLevel).toBeTruthy();\n expect(callingClient.getLoggingLevel()).toEqual(LOGGER.INFO);\n });\n });\n\n describe('Mobius Server discovery tests', () => {\n let callingClient;\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n // MOBIUS TODO: Remove the skip later. Added for testing purposes.\n it.skip('verify successful mobius server url discovery', async () => {\n webex.request.mockResolvedValueOnce(regionPayload).mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).toBeCalledTimes(2);\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n expect(handleErrorSpy).not.toBeCalled();\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n uri: `${DISCOVERY_URL}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(webex.request).nthCalledWith(2, {\n method: 'GET',\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n });\n });\n\n // MOBIUS TODO: Remove the skip later. Added for testing purposes.\n it.skip('when region discovery succeeds but region based mobius url discovery fails with final error', async () => {\n const failurePayload = {\n statusCode: 401,\n };\n\n webex.request.mockResolvedValueOnce(regionPayload).mockRejectedValueOnce(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(handleErrorSpy).toBeCalledWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n expect(webex.request).toBeCalledTimes(2);\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n uri: `${DISCOVERY_URL}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n expect.objectContaining({\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n })\n );\n });\n\n // MOBIUS TODO: Remove the skip later. Added for testing purposes.\n it.skip('Verify successful mobius server url discovery after initializing callingClient through a config', async () => {\n infoSpy.mockReset();\n webex.request.mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {\n discovery: {\n region: 'AP-SOUTHEAST',\n country: 'IN',\n },\n logger: {\n level: LOGGER.INFO,\n },\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: 'CallingClient',\n method: 'getMobiusServers',\n });\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n method: 'GET',\n });\n\n expect(handleErrorSpy).not.toHaveBeenCalled();\n });\n });\n\n describe('Testing each cluster present withing host catalog', () => {\n const mobiusCluster = [\n 'mobius-eu-central-1.prod.infra.webex.com',\n 'mobius-us-east-1.int.infra.webex.com',\n 'mobius-eu-central-1.int.infra.webex.com',\n ];\n\n const checkCluster = async (\n mockServiceHosts: ServiceHost[],\n mockCatalog: Record<string, ServiceHost[]>\n ) => {\n webex.internal.services._hostCatalog = mockCatalog;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockServiceHosts);\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(callingClient['mobiusClusters']).toStrictEqual(mockServiceHosts);\n };\n\n it.each(mobiusCluster)('%s', async (clusterName) => {\n switch (clusterName) {\n case 'mobius-eu-central-1.prod.infra.webex.com':\n checkCluster(mockEUServiceHosts, mockCatalogEU);\n break;\n case 'mobius-us-east-1.int.infra.webex.com':\n checkCluster(mockIntServiceHosts, mockCatalogUSInt);\n break;\n case 'mobius-eu-central-1.int.infra.webex.com':\n checkCluster(mockEUIntServiceHosts, mockCatalogEUInt);\n break;\n default:\n break;\n }\n });\n });\n\n describe('Line creation tests', () => {\n let callingClient;\n let line;\n\n beforeEach(async () => {\n callingClient = await createClient(webex);\n line = Object.values(callingClient.lineDict)[0];\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('verify line dict successfully created', () => {\n expect(callingClient.lineDict).toBeTruthy();\n expect(line).toBeTruthy();\n expect(Object.keys(callingClient.lineDict).length).toEqual(1);\n });\n\n it('verify getLines response', () => {\n expect(callingClient.getLines).toBeTruthy();\n expect(callingClient.getLines()).toEqual(callingClient.lineDict);\n });\n });\n\n describe('Connectivity and Mercury event handlers', () => {\n let callingClient: ICallingClient;\n let line;\n let reg;\n let windowEventSpy: jest.SpyInstance;\n let deRegSpy;\n let restoreSpy;\n let restartRegisterSpy;\n let registerSpy;\n let metricSpy;\n\n beforeEach(async () => {\n jest.useFakeTimers();\n webex.request\n .mockResolvedValueOnce(regionPayload)\n .mockResolvedValueOnce(discoveryPayload)\n .mockResolvedValueOnce(registrationPayload);\n\n windowEventSpy = jest.spyOn(window, 'addEventListener');\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n line = Object.values(callingClient.lineDict)[0] as ILine;\n reg = line.registration;\n await line.register();\n\n deRegSpy = jest.spyOn(reg, 'deregister');\n restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n restartRegisterSpy = jest.spyOn(reg, 'restartRegistration');\n registerSpy = jest.spyOn(reg, 'attemptRegistrationWithServers');\n metricSpy = jest.spyOn(callingClient['metricManager'], 'submitConnectionMetrics');\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callingClient['callManager'].callCollection = {};\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('window offline handler sets networkDown and clears keepalive when network is unreachable', async () => {\n const g = global;\n g.fetch = jest.fn().mockRejectedValueOnce(new Error('network fail'));\n\n const clearKeepaliveSpy = jest.spyOn(reg, 'clearKeepaliveTimer');\n\n const offlineCb = windowEventSpy.mock.calls[1][1];\n await offlineCb();\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Network connectivity probe failed'),\n {\n file: CALLING_CLIENT_FILE,\n method: 'pingExternal',\n }\n );\n expect(callingClient['isNetworkDown']).toBe(true);\n expect(clearKeepaliveSpy).toHaveBeenCalled();\n });\n\n it('window offline handler does not clear keepalive when network is reachable', async () => {\n const g = global;\n g.fetch = jest.fn().mockResolvedValueOnce({});\n\n const clearKeepaliveSpy = jest.spyOn(reg, 'clearKeepaliveTimer');\n\n const offlineCb = windowEventSpy.mock.calls[1][1];\n await offlineCb();\n\n expect(g.fetch).toHaveBeenCalledWith(\n 'https://www.google.com/generate_204',\n expect.any(Object)\n );\n expect(callingClient['isNetworkDown']).toBe(false);\n expect(clearKeepaliveSpy).not.toHaveBeenCalled();\n });\n\n it('window online handler sets networkUpTimestamp and logs', async () => {\n const onlineCb = windowEventSpy.mock.calls[0][1];\n await onlineCb();\n\n expect(callingClient['networkUpTimestamp']).toEqual(expect.any(String));\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: 'handleNetworkOnline',\n });\n });\n\n it('mercury offline submits metrics and sets timestamp', async () => {\n const mercuryOfflineCb = webex.internal.mercury.on.mock.calls[1][1];\n await mercuryOfflineCb();\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Mercury down, waiting for connection to be up'),\n {\n file: CALLING_CLIENT_FILE,\n method: 'handleMercuryOffline',\n }\n );\n expect(callingClient['mercuryDownTimestamp']).toEqual(expect.any(String));\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_DOWN,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n ''\n );\n });\n\n it('handles reconnection with no active calls after network flap, once mercury comes back up', async () => {\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n\n callingClient['isNetworkDown'] = true;\n callingClient['networkDownTimestamp'] = '2023-01-01T00:00:00.000Z';\n callingClient['networkUpTimestamp'] = '2023-01-01T00:01:00.000Z';\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n // Run the interval once\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 100);\n\n await flushPromises();\n\n expect(handleConnectionRestoreSpy).toHaveBeenCalledWith(true);\n expect(logSpy).toHaveBeenCalledWith(\n 'Network is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n expect(deRegSpy).toHaveBeenCalledWith();\n expect(restoreSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n '2023-01-01T00:00:00.000Z',\n '2023-01-01T00:01:00.000Z'\n );\n });\n\n it('no reconnection for idle registration with no active calls after network flap, once mercury comes back up', async () => {\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n\n callingClient['isNetworkDown'] = true;\n callingClient['networkDownTimestamp'] = '2023-01-01T00:00:00.000Z';\n callingClient['networkUpTimestamp'] = '2023-01-01T00:01:00.000Z';\n reg.setStatus(RegistrationStatus.IDLE);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n // Run the interval once\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 100);\n\n await flushPromises();\n\n expect(handleConnectionRestoreSpy).not.toHaveBeenCalledWith(true);\n expect(logSpy).not.toHaveBeenCalledWith(\n 'Network is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n expect(deRegSpy).not.toHaveBeenCalledWith();\n expect(restoreSpy).not.toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).not.toHaveBeenCalledWith('handleConnectionRestoration');\n expect(registerSpy).not.toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).not.toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n '2023-01-01T00:00:00.000Z',\n '2023-01-01T00:01:00.000Z'\n );\n });\n\n it('handle calls status check once mercury comes back up after a network flap', async () => {\n callingClient['isNetworkDown'] = true;\n const call = callingClient['callManager'].createCall();\n const callKeepaliveSpy = jest\n .spyOn(call, 'postStatus')\n .mockRejectedValueOnce(new Error('keepalive fail'));\n const deleteSpy = jest.spyOn(call, 'delete');\n expect(Object.keys(callingClient['callManager'].getActiveCalls()).length).toBe(1);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n expect(callKeepaliveSpy).toHaveBeenCalled();\n\n await flushPromises();\n\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Call Keepalive failed'), {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n });\n expect(call['callStateMachine'].state.value).toBe('S_CALL_CLEARED');\n expect(deleteSpy).toHaveBeenCalled();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n expect.any(String)\n );\n });\n\n it('handle calls status check once mercury comes back up with stable network', async () => {\n const call = callingClient['callManager'].createCall();\n const callKeepaliveSpy = jest\n .spyOn(call, 'postStatus')\n .mockRejectedValueOnce(new Error('keepalive fail'));\n const deleteSpy = jest.spyOn(call, 'delete');\n expect(Object.keys(callingClient['callManager'].getActiveCalls()).length).toBe(1);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n expect(callKeepaliveSpy).toHaveBeenCalled();\n\n await flushPromises();\n\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Call Keepalive failed'), {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n });\n expect(call['callStateMachine'].state.value).toBe('S_CALL_CLEARED');\n expect(deleteSpy).toHaveBeenCalled();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_UP,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n expect.any(String)\n );\n });\n });\n\n // Calling related test cases\n describe('Calling tests', () => {\n const mutex = new Mutex();\n const userId = webex.internal.device.userId;\n const clientDeviceUri = webex.internal.device.url;\n const mobiusUris = filterMobiusUris(getMobiusDiscoveryResponse(), URL);\n const primaryMobiusUris = jest.fn(() => mobiusUris.primary);\n const backupMobiusUris = jest.fn(() => mobiusUris.backup);\n\n let callingClient;\n let line: Line;\n\n beforeAll(async () => {\n callingClient = await createClient(webex);\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO\n );\n const calls = Object.values(callManager.getActiveCalls());\n calls.forEach((call) => {\n call.end();\n });\n });\n\n afterAll(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify calling client object', () => {\n expect(callingClient.getSDKConnector().getWebex().internal.device.userId).toBe(\n '8a67806f-fc4d-446b-a131-31e71ea5b0e9'\n );\n });\n\n it('returns undefined when there is no connected call', () => {\n line.register();\n line.makeCall({address: '123456', type: CallType.URI});\n expect(callingClient.getConnectedCall()).toEqual(undefined);\n });\n\n it('returns the connected call', () => {\n line.register();\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n // Connected call\n mockCall['connected'] = true;\n mockCall['earlyMedia'] = false;\n mockCall['callStateMachine'].state.value = 'S_CALL_ESTABLISHED';\n\n // Held call\n mockCall2['connected'] = true;\n mockCall2['held'] = true;\n mockCall2['earlyMedia'] = false;\n mockCall2['callStateMachine'].state.value = 'S_CALL_HOLD';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getConnectedCall()).toEqual(mockCall);\n });\n it('returns all active calls', () => {\n callingClient.lineDict = {\n mockDeviceId: {lineId: 'mockLineId'} as ILine,\n mockDeviceId2: {lineId: 'mockLineId2'} as ILine,\n };\n\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n const mockCall3 = line.makeCall({address: '9101', type: CallType.URI});\n\n mockCall.lineId = 'mockLineId';\n mockCall2.lineId = 'mockLineId2';\n mockCall3.lineId = 'mockLineId2';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n mockCorrelationId3: mockCall3 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getActiveCalls()).toEqual({\n mockLineId: [mockCall],\n mockLineId2: [mockCall2, mockCall3],\n });\n });\n });\n\n describe('Call Session Event test', () => {\n const mockOn = webex.internal.mercury.on;\n let callingClient: ICallingClient;\n\n beforeEach(async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify the recent user session event ', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT.data);\n done();\n });\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_SESSION_EVENT);\n });\n\n it('drop the recent user session if there is no webex calling type', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data.userSessions.userSessions.length).toEqual(1);\n done();\n });\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_MULTIPLE_SESSIONS_EVENT);\n });\n });\n\n describe('Mobius async_event routing', () => {\n let callingClient: ICallingClient;\n let asyncEventCallback;\n let mobiusSocketMock;\n\n beforeEach(async () => {\n mobiusSocketMock = (\n jest.requireMock('@webex/internal-plugin-mobius-socket') as {\n getMobiusSocketInstance: (w: unknown) => unknown;\n }\n ).getMobiusSocketInstance(webex) as {\n on: jest.Mock;\n off: jest.Mock;\n };\n (mobiusSocketMock.on as jest.Mock).mockClear();\n (mobiusSocketMock.off as jest.Mock).mockClear();\n\n callingClient = await createClient(webex, {\n logger: {level: LOGGER.INFO},\n isMobiusSocketEnabled: true,\n });\n\n const asyncEventOnCall = (mobiusSocketMock.on as jest.Mock).mock.calls.find(\n (call) => call[0] === 'event:async_event'\n );\n asyncEventCallback = asyncEventOnCall[1];\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('routes mobius.* async events to callManager', async () => {\n const callEventSpy = jest\n .spyOn(callingClient['callManager'], 'dequeueWsEvents')\n .mockImplementation(() => undefined);\n\n await asyncEventCallback({\n type: 'async_event',\n data: {\n eventType: 'mobius.call',\n callId: 'fcf86aa5-5539-4c9f-8b72-667786ae9b6c',\n callUrl: 'https://mobius-a.wbx2.com/api/v1/calling/web/devices/d1/calls/c1',\n deviceId: 'd1',\n correlationId: 'corr-1',\n },\n });\n\n expect(callEventSpy).toHaveBeenCalledWith(\n expect.objectContaining({\n type: 'async_event',\n data: expect.objectContaining({\n eventType: 'mobius.call',\n }),\n })\n );\n });\n });\n\n describe('getDevices', () => {\n let callingClient: ICallingClient;\n const primaryMobius = 'https://mobius.primary/api/v1/calling/web/';\n const backupMobius = 'https://mobius.backup/api/v1/calling/web/';\n\n beforeEach(async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n callingClient.primaryMobiusUris = [primaryMobius];\n callingClient.backupMobiusUris = [backupMobius];\n (webex.request as jest.Mock).mockClear();\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n });\n\n it('fetches devices for the provided userId', async () => {\n const devices = [\n {\n deviceId: 'device-1',\n uri: 'https://mobius.test/api/v1/calling/web/devices/device-1',\n status: 'ACTIVE',\n lastSeen: '2024-01-01T00:00:00Z',\n addresses: [],\n clientDeviceUri: 'client-device-uri',\n },\n ];\n\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: {userId: 'user-123', devices},\n });\n\n (webex.request as jest.Mock).mockResolvedValue(responsePayload);\n\n const response = await callingClient.getDevices('user-123');\n\n expect(webex.request).toHaveBeenCalledWith({\n uri: 'https://mobius.primary/api/v1/calling/web/devices?userid=user-123',\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n expect(response).toEqual(devices);\n });\n\n it('falls back to backup Mobius when primary fails', async () => {\n const devices = [\n {\n deviceId: 'device-2',\n uri: 'https://mobius.backup/api/v1/calling/web/devices/device-2',\n status: 'ACTIVE',\n lastSeen: '2024-01-01T00:00:00Z',\n addresses: [],\n clientDeviceUri: 'client-device-uri',\n },\n ];\n\n const failurePayload = {\n statusCode: 404,\n };\n\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: {userId: 'user-123', devices},\n });\n\n (webex.request as jest.Mock)\n .mockRejectedValueOnce(failurePayload)\n .mockResolvedValueOnce(responsePayload);\n\n const response = await callingClient.getDevices('user-123');\n\n const requestCalls = (webex.request as jest.Mock).mock.calls;\n expect(requestCalls[0][0]).toEqual({\n uri: 'https://mobius.primary/api/v1/calling/web/devices?userid=user-123',\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n expect(requestCalls[1][0]).toEqual({\n uri: 'https://mobius.backup/api/v1/calling/web/devices?userid=user-123',\n method: HTTP_METHODS.GET,\n service: ALLOWED_SERVICES.MOBIUS,\n headers: {\n [CISCO_DEVICE_URL]: webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n\n expect(response).toEqual(devices);\n });\n });\n\n describe('windowsChromiumIceWarmup', () => {\n let origRTCPeerConnection: any;\n\n beforeAll(() => {\n origRTCPeerConnection = global.RTCPeerConnection;\n // Minimal mock for RTCPeerConnection\n global.RTCPeerConnection = class {\n static instances: any[] = [];\n iceGatheringState = 'complete';\n localDescription = null;\n remoteDescription = null;\n onicecandidate: ((e: any) => void) | null = null;\n constructor() {\n (this.constructor as any).instances.push(this);\n }\n\n createDataChannel() {\n return {};\n }\n\n addTransceiver() {\n return {};\n }\n\n createOffer() {\n return Promise.resolve({sdp: 'offer', type: 'offer'});\n }\n\n setLocalDescription(desc: any) {\n this.localDescription = desc;\n\n return Promise.resolve();\n }\n\n setRemoteDescription(desc: any) {\n this.remoteDescription = desc;\n\n return Promise.resolve();\n }\n\n createAnswer() {\n return Promise.resolve({sdp: 'answer', type: 'answer'});\n }\n\n addIceCandidate() {\n return Promise.resolve();\n }\n\n close() {}\n addEventListener() {}\n removeEventListener() {}\n };\n });\n\n afterAll(() => {\n global.RTCPeerConnection = origRTCPeerConnection;\n });\n\n it('should complete without throwing', async () => {\n await expect(windowsChromiumIceWarmup({})).resolves.not.toThrow();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -300,7 +300,10 @@ export class CallingClient extends Eventing {
|
|
|
300
300
|
file: CALLING_CLIENT_FILE,
|
|
301
301
|
method: GET_MOBIUS_SERVERS_UTIL,
|
|
302
302
|
});
|
|
303
|
-
const regionInfo =
|
|
303
|
+
const regionInfo = {
|
|
304
|
+
clientRegion: 'US-EAST',
|
|
305
|
+
countryCode: 'WS-LOAD-TEST',
|
|
306
|
+
};
|
|
304
307
|
clientRegion = regionInfo.clientRegion;
|
|
305
308
|
countryCode = regionInfo.countryCode;
|
|
306
309
|
}
|
|
@@ -318,7 +321,7 @@ export class CallingClient extends Eventing {
|
|
|
318
321
|
}
|
|
319
322
|
try {
|
|
320
323
|
const response = await this.webex.request({
|
|
321
|
-
uri:
|
|
324
|
+
uri: 'https://mobius.aload-calling1.ciscospark.com/api/v1/calling/web/?regionCode=US-EAST&countryCode=WS-LOAD-TEST',
|
|
322
325
|
method: HTTP_METHODS.GET,
|
|
323
326
|
headers: {
|
|
324
327
|
[CISCO_DEVICE_URL]: this.webex.internal.device.url,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallingClient.d.ts","sourceRoot":"","sources":["../../../src/CallingClient/CallingClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAC;AAYpD,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAmB,aAAa,EAAe,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AACxC,OAAO,EACL,uBAAuB,EAKxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAQL,kBAAkB,EAClB,UAAU,EAEX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAC,KAAK,EAAkD,MAAM,iBAAiB,CAAC;AAkBvF,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AAyBnC,qBAAa,aAAc,SAAQ,QAAQ,CAAC,uBAAuB,CAAE,YAAW,cAAc;IAC5F,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,KAAK,CAAW;IAExB,OAAO,CAAC,KAAK,CAAQ;IAErB,OAAO,CAAC,WAAW,CAAe;IAElC,OAAO,CAAC,aAAa,CAAiB;IAEtC,OAAO,CAAC,SAAS,CAAC,CAAsB;IAExC,OAAO,CAAC,iBAAiB,CAAW;IAEpC,OAAO,CAAC,gBAAgB,CAAW;IAEnC,OAAO,CAAC,oBAAoB,CAAW;IAEvC,OAAO,CAAC,mBAAmB,CAAW;IAEtC,OAAO,CAAC,cAAc,CAAgB;IAEtC,OAAO,CAAC,UAAU,CAAS;IAEpB,WAAW,EAAE,OAAO,KAAK,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAA6B;IAE7C,OAAO,CAAC,UAAU,CAAa;IAE/B,OAAO,CAAC,qBAAqB,CAAU;IAGvC,OAAO,CAAC,YAAY,CAAM;IAE1B,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,oBAAoB,CAAM;IAElC,OAAO,CAAC,kBAAkB,CAAM;IAEhC,OAAO,CAAC,oBAAoB,CAAM;IAElC,OAAO,CAAC,kBAAkB,CAAM;gBAKpB,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,mBAAmB;IA+E5C,IAAI;YA0CH,wBAAwB;YA2BxB,eAAe;IAwB7B,OAAO,CAAC,oBAAoB,CAY1B;IAGF,OAAO,CAAC,mBAAmB,CAMzB;IAEF,OAAO,CAAC,oBAAoB,CAa1B;IAEF,OAAO,CAAC,mBAAmB,CA6CzB;IAEF,OAAO,CAAC,0BAA0B;YAmBpB,mBAAmB;YAkFnB,gBAAgB;
|
|
1
|
+
{"version":3,"file":"CallingClient.d.ts","sourceRoot":"","sources":["../../../src/CallingClient/CallingClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAC;AAYpD,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAmB,aAAa,EAAe,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AACxC,OAAO,EACL,uBAAuB,EAKxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAQL,kBAAkB,EAClB,UAAU,EAEX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAC,KAAK,EAAkD,MAAM,iBAAiB,CAAC;AAkBvF,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AAyBnC,qBAAa,aAAc,SAAQ,QAAQ,CAAC,uBAAuB,CAAE,YAAW,cAAc;IAC5F,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,KAAK,CAAW;IAExB,OAAO,CAAC,KAAK,CAAQ;IAErB,OAAO,CAAC,WAAW,CAAe;IAElC,OAAO,CAAC,aAAa,CAAiB;IAEtC,OAAO,CAAC,SAAS,CAAC,CAAsB;IAExC,OAAO,CAAC,iBAAiB,CAAW;IAEpC,OAAO,CAAC,gBAAgB,CAAW;IAEnC,OAAO,CAAC,oBAAoB,CAAW;IAEvC,OAAO,CAAC,mBAAmB,CAAW;IAEtC,OAAO,CAAC,cAAc,CAAgB;IAEtC,OAAO,CAAC,UAAU,CAAS;IAEpB,WAAW,EAAE,OAAO,KAAK,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAA6B;IAE7C,OAAO,CAAC,UAAU,CAAa;IAE/B,OAAO,CAAC,qBAAqB,CAAU;IAGvC,OAAO,CAAC,YAAY,CAAM;IAE1B,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,oBAAoB,CAAM;IAElC,OAAO,CAAC,kBAAkB,CAAM;IAEhC,OAAO,CAAC,oBAAoB,CAAM;IAElC,OAAO,CAAC,kBAAkB,CAAM;gBAKpB,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,mBAAmB;IA+E5C,IAAI;YA0CH,wBAAwB;YA2BxB,eAAe;IAwB7B,OAAO,CAAC,oBAAoB,CAY1B;IAGF,OAAO,CAAC,mBAAmB,CAMzB;IAEF,OAAO,CAAC,oBAAoB,CAa1B;IAEF,OAAO,CAAC,mBAAmB,CA6CzB;IAEF,OAAO,CAAC,0BAA0B;YAmBpB,mBAAmB;YAkFnB,gBAAgB;YAyKhB,qBAAqB;IAoFnC,OAAO,CAAC,4BAA4B;IA0BpC,OAAO,CAAC,sBAAsB,CA2B5B;IAOF,OAAO,CAAC,4BAA4B;IAgBpC,OAAO,CAAC,mBAAmB,CAoBzB;IAMK,eAAe,IAAI,MAAM;IAQzB,eAAe,IAAI,aAAa;IAIvC,OAAO,CAAC,wBAAwB;YAgClB,UAAU;IA2BjB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAO3B,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IA0DxD,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;IAiBzC,gBAAgB,IAAI,KAAK,GAAG,SAAS;IAuB/B,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC;CAQvD;AAOD,eAAO,MAAM,YAAY,UAChB,QAAQ,WACN,mBAAmB,KAC3B,QAAQ,cAAc,CAKxB,CAAC"}
|
package/package.json
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"@types/platform": "1.3.4",
|
|
43
43
|
"@webex/internal-media-core": "2.23.3",
|
|
44
44
|
"@webex/internal-plugin-metrics": "3.12.0-mobius-socket.1",
|
|
45
|
-
"@webex/internal-plugin-mobius-socket": "1.0.0-mobius-socket.
|
|
45
|
+
"@webex/internal-plugin-mobius-socket": "1.0.0-mobius-socket.6",
|
|
46
46
|
"@webex/media-helpers": "3.12.0-mobius-socket.0",
|
|
47
47
|
"async-mutex": "0.4.0",
|
|
48
48
|
"buffer": "6.0.3",
|
|
@@ -136,5 +136,5 @@
|
|
|
136
136
|
"staticpath": "docs",
|
|
137
137
|
"noprompt": true
|
|
138
138
|
},
|
|
139
|
-
"version": "3.12.0-mobius-socket.
|
|
139
|
+
"version": "3.12.0-mobius-socket.6"
|
|
140
140
|
}
|