@webex/calling 3.4.0 → 3.5.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CallHistory/CallHistory.js +103 -4
- package/dist/CallHistory/CallHistory.js.map +1 -1
- package/dist/CallHistory/CallHistory.test.js +143 -0
- package/dist/CallHistory/CallHistory.test.js.map +1 -1
- package/dist/CallHistory/callHistoryFixtures.js +224 -1
- package/dist/CallHistory/callHistoryFixtures.js.map +1 -1
- package/dist/CallHistory/constants.js +8 -2
- package/dist/CallHistory/constants.js.map +1 -1
- package/dist/CallHistory/types.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.js +1 -1
- package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.test.js +1 -1
- package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
- package/dist/CallSettings/constants.js +1 -3
- package/dist/CallSettings/constants.js.map +1 -1
- package/dist/CallingClient/CallingClient.js +11 -2
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +249 -193
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/CallingClient/calling/call.js +81 -0
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +332 -217
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/CallingClient/constants.js +2 -1
- package/dist/CallingClient/constants.js.map +1 -1
- package/dist/CallingClient/registration/register.js +18 -13
- package/dist/CallingClient/registration/register.js.map +1 -1
- package/dist/CallingClient/registration/register.test.js +242 -125
- package/dist/CallingClient/registration/register.test.js.map +1 -1
- package/dist/Contacts/ContactsClient.js +39 -27
- package/dist/Contacts/ContactsClient.js.map +1 -1
- package/dist/Contacts/ContactsClient.test.js +64 -1
- package/dist/Contacts/ContactsClient.test.js.map +1 -1
- package/dist/Contacts/contactFixtures.js +26 -3
- package/dist/Contacts/contactFixtures.js.map +1 -1
- package/dist/Contacts/types.js.map +1 -1
- package/dist/Events/types.js.map +1 -1
- package/dist/Metrics/index.js +2 -2
- package/dist/Metrics/index.js.map +1 -1
- package/dist/common/Utils.js +10 -8
- package/dist/common/Utils.js.map +1 -1
- package/dist/common/Utils.test.js +25 -1
- package/dist/common/Utils.test.js.map +1 -1
- package/dist/common/constants.js +5 -1
- package/dist/common/constants.js.map +1 -1
- package/dist/common/testUtil.js +23 -1
- package/dist/common/testUtil.js.map +1 -1
- package/dist/common/types.js.map +1 -1
- package/dist/module/CallHistory/CallHistory.js +57 -3
- package/dist/module/CallHistory/callHistoryFixtures.js +215 -0
- package/dist/module/CallHistory/constants.js +7 -1
- package/dist/module/CallSettings/UcmBackendConnector.js +5 -3
- package/dist/module/CallSettings/constants.js +0 -2
- package/dist/module/CallingClient/CallingClient.js +13 -2
- package/dist/module/CallingClient/calling/call.js +50 -0
- package/dist/module/CallingClient/constants.js +1 -0
- package/dist/module/CallingClient/registration/register.js +12 -6
- package/dist/module/Contacts/ContactsClient.js +28 -17
- package/dist/module/Contacts/contactFixtures.js +25 -2
- package/dist/module/Metrics/index.js +6 -2
- package/dist/module/common/Utils.js +7 -5
- package/dist/module/common/constants.js +4 -0
- package/dist/module/common/testUtil.js +24 -0
- package/dist/types/CallHistory/CallHistory.d.ts +1 -0
- package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
- package/dist/types/CallHistory/callHistoryFixtures.d.ts +98 -1
- package/dist/types/CallHistory/callHistoryFixtures.d.ts.map +1 -1
- package/dist/types/CallHistory/constants.d.ts +7 -1
- package/dist/types/CallHistory/constants.d.ts.map +1 -1
- package/dist/types/CallHistory/types.d.ts +9 -1
- package/dist/types/CallHistory/types.d.ts.map +1 -1
- package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
- package/dist/types/CallSettings/constants.d.ts +0 -2
- package/dist/types/CallSettings/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/call.d.ts +1 -0
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +1 -0
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/register.d.ts +1 -0
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/Contacts/ContactsClient.d.ts +1 -1
- package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
- package/dist/types/Contacts/contactFixtures.d.ts +28 -0
- package/dist/types/Contacts/contactFixtures.d.ts.map +1 -1
- package/dist/types/Contacts/types.d.ts +3 -3
- package/dist/types/Contacts/types.d.ts.map +1 -1
- package/dist/types/Events/types.d.ts +15 -0
- package/dist/types/Events/types.d.ts.map +1 -1
- package/dist/types/Metrics/index.d.ts.map +1 -1
- package/dist/types/Voicemail/UcmBackendConnector.d.ts +1 -1
- package/dist/types/Voicemail/WxCallBackendConnector.d.ts +1 -1
- package/dist/types/common/Utils.d.ts +2 -2
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/dist/types/common/constants.d.ts +4 -0
- package/dist/types/common/constants.d.ts.map +1 -1
- package/dist/types/common/testUtil.d.ts +20 -0
- package/dist/types/common/testUtil.d.ts.map +1 -1
- package/dist/types/common/types.d.ts +12 -12
- package/dist/types/common/types.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -4,7 +4,7 @@ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/defi
|
|
|
4
4
|
_Object$defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.WEB_AGENT = exports.WEBEX_WEB_CLIENT = exports.WEBEX = exports.VERSION = exports.VALID_PHONE = exports.UTILS_FILE = exports.USER_AGENT_VERSION = exports.URL_ENDPOINT = exports.TYPE = exports.TRANSPORT = exports.TRANSFER_ENDPOINT = exports.TOTAL_SAMPLES_DURATION = exports.TOTAL_ROUND_TRIP_TIME = exports.TIMESTAMP = exports.TARGET_BIT_RATE = exports.SUPPLEMENTARY_SERVICES_TIMEOUT = exports.SPARK_USER_AGENT = exports.SELECTED_CANDIDATE_PAIR_ID = exports.SEC_TO_MSEC_MFACTOR = exports.RTP_TX_STAT = exports.RTP_RX_STAT = exports.RTC_ICE_CANDIDATE_PAIR = exports.RTC_ICE_CANDIDATE = exports.RTC_CODEC = exports.ROUND_TRIP_TIME_MEASUREMENTS = exports.RESUME_ENDPOINT = exports.REPO_NAME = exports.REMOTE_INBOUND_RTP = exports.REG_TRY_BACKUP_TIMER_VAL_IN_SEC = exports.REG_RANDOM_T_FACTOR_UPPER_LIMIT = exports.REG_FAILBACK_429_MAX_RETRIES = exports.REGISTRATION_FILE = exports.REGISTER_UTIL = exports.REGISTER_RETRY_TIMEOUT = exports.RECONNECT_UTIL = exports.PACKETS_SENT = exports.PACKETS_RECEIVED = exports.PACKETS_LOST = exports.PACKETS_DISCARDED = exports.OUTBOUND_RTP = exports.OUTBOUND_CODEC_MATCH = exports.NOISE_REDUCTION_EFFECT = exports.NETWORK_TYPE = exports.NETWORK_FLAP_TIMEOUT = exports.NETWORK_CHANGE_DETECTION_UTIL = exports.MOBIUS_US_PROD = exports.MOBIUS_US_INT = exports.MOBIUS_EU_PROD = exports.MOBIUS_EU_INT = exports.MINUTES_TO_SEC_MFACTOR = exports.MIME_TYPE = exports.METRIC_FILE = exports.MEDIA_SOURCE = exports.MEDIA_ID = exports.MEDIA_ENDPOINT_RESOURCE = exports.LOCAL_CANDIDATE_ID = exports.LINE_FILE = exports.KEEPALIVE_UTIL = exports.JITTER_BUFFER_EMITTED_COUNT = exports.JITTER_BUFFER_DELAY = exports.IP_ENDPOINT = exports.INITIAL_SEQ_NUMBER = exports.INBOUND_RTP = exports.INBOUND_CODEC_MATCH = exports.ICE_CANDIDATES_TIMEOUT = exports.HOLD_ENDPOINT = exports.GET_MOBIUS_SERVERS_UTIL = exports.FETCH_NAME = exports.FAILOVER_UTIL = exports.FAILBACK_UTIL = exports.FAILBACK_429_RETRY_UTIL = exports.DUMMY_MOBIUS_URL = exports.DUMMY_METRICS = exports.DISCOVERY_URL = exports.DEVICES_ENDPOINT_RESOURCE = exports.DEFAULT_SESSION_TIMER = exports.DEFAULT_REHOMING_INTERVAL_MIN = exports.DEFAULT_REHOMING_INTERVAL_MAX = exports.DEFAULT_LOCAL_CALL_ID = exports.DEFAULT_KEEPALIVE_INTERVAL = exports.CRLF = exports.CODEC_ID = exports.CISCO_DEVICE_URL = exports.CALL_TRANSFER_SERVICE = exports.CALL_STATUS_RESOURCE = exports.CALL_MANAGER_FILE = exports.CALL_HOLD_SERVICE = exports.CALL_FILE = exports.CALL_ENDPOINT_RESOURCE = exports.CALLS_ENDPOINT_RESOURCE = exports.CALLS_CLEARED_HANDLER_UTIL = exports.CALLING_USER_AGENT = exports.CALLING_CLIENT_FILE = exports.CALLER_ID_FILE = exports.BYTES_SENT = exports.BYTES_RECEIVED = exports.BASE_REG_TIMER_MFACTOR = exports.BASE_REG_RETRY_TIMER_VAL_IN_SEC = exports.API_V1 = void 0;
|
|
7
|
+
exports.WEB_AGENT = exports.WEBEX_WEB_CLIENT = exports.WEBEX = exports.VERSION = exports.VALID_PHONE = exports.UTILS_FILE = exports.USER_AGENT_VERSION = exports.URL_ENDPOINT = exports.TYPE = exports.TRANSPORT = exports.TRANSFER_ENDPOINT = exports.TOTAL_SAMPLES_DURATION = exports.TOTAL_ROUND_TRIP_TIME = exports.TIMESTAMP = exports.TARGET_BIT_RATE = exports.SUPPLEMENTARY_SERVICES_TIMEOUT = exports.SPARK_USER_AGENT = exports.SELECTED_CANDIDATE_PAIR_ID = exports.SEC_TO_MSEC_MFACTOR = exports.RTP_TX_STAT = exports.RTP_RX_STAT = exports.RTC_ICE_CANDIDATE_PAIR = exports.RTC_ICE_CANDIDATE = exports.RTC_CODEC = exports.ROUND_TRIP_TIME_MEASUREMENTS = exports.RESUME_ENDPOINT = exports.REPO_NAME = exports.REMOTE_INBOUND_RTP = exports.REG_TRY_BACKUP_TIMER_VAL_IN_SEC = exports.REG_TRY_BACKUP_TIMER_VAL_FOR_CC_IN_SEC = exports.REG_RANDOM_T_FACTOR_UPPER_LIMIT = exports.REG_FAILBACK_429_MAX_RETRIES = exports.REGISTRATION_FILE = exports.REGISTER_UTIL = exports.REGISTER_RETRY_TIMEOUT = exports.RECONNECT_UTIL = exports.PACKETS_SENT = exports.PACKETS_RECEIVED = exports.PACKETS_LOST = exports.PACKETS_DISCARDED = exports.OUTBOUND_RTP = exports.OUTBOUND_CODEC_MATCH = exports.NOISE_REDUCTION_EFFECT = exports.NETWORK_TYPE = exports.NETWORK_FLAP_TIMEOUT = exports.NETWORK_CHANGE_DETECTION_UTIL = exports.MOBIUS_US_PROD = exports.MOBIUS_US_INT = exports.MOBIUS_EU_PROD = exports.MOBIUS_EU_INT = exports.MINUTES_TO_SEC_MFACTOR = exports.MIME_TYPE = exports.METRIC_FILE = exports.MEDIA_SOURCE = exports.MEDIA_ID = exports.MEDIA_ENDPOINT_RESOURCE = exports.LOCAL_CANDIDATE_ID = exports.LINE_FILE = exports.KEEPALIVE_UTIL = exports.JITTER_BUFFER_EMITTED_COUNT = exports.JITTER_BUFFER_DELAY = exports.IP_ENDPOINT = exports.INITIAL_SEQ_NUMBER = exports.INBOUND_RTP = exports.INBOUND_CODEC_MATCH = exports.ICE_CANDIDATES_TIMEOUT = exports.HOLD_ENDPOINT = exports.GET_MOBIUS_SERVERS_UTIL = exports.FETCH_NAME = exports.FAILOVER_UTIL = exports.FAILBACK_UTIL = exports.FAILBACK_429_RETRY_UTIL = exports.DUMMY_MOBIUS_URL = exports.DUMMY_METRICS = exports.DISCOVERY_URL = exports.DEVICES_ENDPOINT_RESOURCE = exports.DEFAULT_SESSION_TIMER = exports.DEFAULT_REHOMING_INTERVAL_MIN = exports.DEFAULT_REHOMING_INTERVAL_MAX = exports.DEFAULT_LOCAL_CALL_ID = exports.DEFAULT_KEEPALIVE_INTERVAL = exports.CRLF = exports.CODEC_ID = exports.CISCO_DEVICE_URL = exports.CALL_TRANSFER_SERVICE = exports.CALL_STATUS_RESOURCE = exports.CALL_MANAGER_FILE = exports.CALL_HOLD_SERVICE = exports.CALL_FILE = exports.CALL_ENDPOINT_RESOURCE = exports.CALLS_ENDPOINT_RESOURCE = exports.CALLS_CLEARED_HANDLER_UTIL = exports.CALLING_USER_AGENT = exports.CALLING_CLIENT_FILE = exports.CALLER_ID_FILE = exports.BYTES_SENT = exports.BYTES_RECEIVED = exports.BASE_REG_TIMER_MFACTOR = exports.BASE_REG_RETRY_TIMER_VAL_IN_SEC = exports.API_V1 = void 0;
|
|
8
8
|
var VERSION = exports.VERSION = 'unknown';
|
|
9
9
|
var USER_AGENT_VERSION = exports.USER_AGENT_VERSION = 'beta';
|
|
10
10
|
var REPO_NAME = exports.REPO_NAME = 'webex-calling';
|
|
@@ -114,6 +114,7 @@ var SEC_TO_MSEC_MFACTOR = exports.SEC_TO_MSEC_MFACTOR = 1000;
|
|
|
114
114
|
var MINUTES_TO_SEC_MFACTOR = exports.MINUTES_TO_SEC_MFACTOR = 60;
|
|
115
115
|
var REG_RANDOM_T_FACTOR_UPPER_LIMIT = exports.REG_RANDOM_T_FACTOR_UPPER_LIMIT = 10000;
|
|
116
116
|
var REG_TRY_BACKUP_TIMER_VAL_IN_SEC = exports.REG_TRY_BACKUP_TIMER_VAL_IN_SEC = 1200;
|
|
117
|
+
var REG_TRY_BACKUP_TIMER_VAL_FOR_CC_IN_SEC = exports.REG_TRY_BACKUP_TIMER_VAL_FOR_CC_IN_SEC = 114;
|
|
117
118
|
var REG_FAILBACK_429_MAX_RETRIES = exports.REG_FAILBACK_429_MAX_RETRIES = 5;
|
|
118
119
|
var REGISTER_UTIL = exports.REGISTER_UTIL = 'registerDevice';
|
|
119
120
|
var GET_MOBIUS_SERVERS_UTIL = exports.GET_MOBIUS_SERVERS_UTIL = 'getMobiusServers';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VERSION","exports","USER_AGENT_VERSION","REPO_NAME","CALLING_USER_AGENT","concat","CALL_ENDPOINT_RESOURCE","CALL_STATUS_RESOURCE","CALLS_ENDPOINT_RESOURCE","CISCO_DEVICE_URL","CRLF","DEFAULT_KEEPALIVE_INTERVAL","DEFAULT_LOCAL_CALL_ID","DEFAULT_REHOMING_INTERVAL_MAX","DEFAULT_REHOMING_INTERVAL_MIN","DEFAULT_SESSION_TIMER","DEVICES_ENDPOINT_RESOURCE","DISCOVERY_URL","DUMMY_METRICS","Dur","Pkt","Oct","LatePkt","LostPkt","AvgJit","VQMetrics","VoRxCodec","VoPktSizeMs","maxJitter","VoOneWayDelayMs","networkType","hwType","VoTxCodec","rtpBitRate","DUMMY_MOBIUS_URL","FETCH_NAME","IP_ENDPOINT","INITIAL_SEQ_NUMBER","MEDIA_ENDPOINT_RESOURCE","NETWORK_FLAP_TIMEOUT","CALL_HOLD_SERVICE","CALL_TRANSFER_SERVICE","HOLD_ENDPOINT","TRANSFER_ENDPOINT","RESUME_ENDPOINT","SPARK_USER_AGENT","REGISTER_RETRY_TIMEOUT","SUPPLEMENTARY_SERVICES_TIMEOUT","API_V1","URL_ENDPOINT","VALID_PHONE","WEB_AGENT","WEBEX","WEBEX_WEB_CLIENT","CALLER_ID_FILE","UTILS_FILE","CALLING_CLIENT_FILE","LINE_FILE","CALL_FILE","CALL_MANAGER_FILE","METRIC_FILE","REGISTRATION_FILE","CODEC_ID","MEDIA_ID","RTC_ICE_CANDIDATE_PAIR","LOCAL_CANDIDATE_ID","RTC_ICE_CANDIDATE","NETWORK_TYPE","RTC_CODEC","INBOUND_CODEC_MATCH","OUTBOUND_CODEC_MATCH","MIME_TYPE","REMOTE_INBOUND_RTP","TOTAL_ROUND_TRIP_TIME","ROUND_TRIP_TIME_MEASUREMENTS","INBOUND_RTP","OUTBOUND_RTP","PACKETS_RECEIVED","PACKETS_SENT","PACKETS_LOST","PACKETS_DISCARDED","JITTER_BUFFER_DELAY","JITTER_BUFFER_EMITTED_COUNT","TIMESTAMP","TYPE","TRANSPORT","TARGET_BIT_RATE","MEDIA_SOURCE","BYTES_RECEIVED","BYTES_SENT","SELECTED_CANDIDATE_PAIR_ID","TOTAL_SAMPLES_DURATION","RTP_RX_STAT","RTP_TX_STAT","BASE_REG_TIMER_MFACTOR","BASE_REG_RETRY_TIMER_VAL_IN_SEC","SEC_TO_MSEC_MFACTOR","MINUTES_TO_SEC_MFACTOR","REG_RANDOM_T_FACTOR_UPPER_LIMIT","REG_TRY_BACKUP_TIMER_VAL_IN_SEC","REG_FAILBACK_429_MAX_RETRIES","REGISTER_UTIL","GET_MOBIUS_SERVERS_UTIL","KEEPALIVE_UTIL","FAILBACK_UTIL","FAILBACK_429_RETRY_UTIL","FAILOVER_UTIL","NETWORK_CHANGE_DETECTION_UTIL","CALLS_CLEARED_HANDLER_UTIL","RECONNECT_UTIL","NOISE_REDUCTION_EFFECT","MOBIUS_US_PROD","MOBIUS_EU_PROD","MOBIUS_US_INT","MOBIUS_EU_INT","ICE_CANDIDATES_TIMEOUT"],"sources":["constants.ts"],"sourcesContent":["export const VERSION = 'unknown';\nexport const USER_AGENT_VERSION = 'beta';\nexport const REPO_NAME = 'webex-calling';\nexport const CALLING_USER_AGENT = `${REPO_NAME}/${USER_AGENT_VERSION}`;\nexport const CALL_ENDPOINT_RESOURCE = 'call';\nexport const CALL_STATUS_RESOURCE = 'status';\nexport const CALLS_ENDPOINT_RESOURCE = 'calls';\nexport const CISCO_DEVICE_URL = 'cisco-device-url';\nexport const CRLF = '\\r\\n';\nexport const DEFAULT_KEEPALIVE_INTERVAL = 30;\nexport const DEFAULT_LOCAL_CALL_ID = 'DefaultLocalId';\nexport const DEFAULT_REHOMING_INTERVAL_MAX = 120;\nexport const DEFAULT_REHOMING_INTERVAL_MIN = 60;\nexport const DEFAULT_SESSION_TIMER = 1000 * 60 * 10;\nexport const DEVICES_ENDPOINT_RESOURCE = 'devices';\nexport const DISCOVERY_URL = 'https://ds.ciscospark.com/v1/region';\nexport const DUMMY_METRICS = {\n 'rtp-rxstat': {\n Dur: 0,\n Pkt: 0,\n Oct: 0,\n LatePkt: 0,\n LostPkt: 0,\n AvgJit: 0,\n VQMetrics: {\n VoRxCodec: 'unknown',\n VoPktSizeMs: 0,\n maxJitter: 0,\n VoOneWayDelayMs: 0,\n networkType: 'unknown',\n hwType: 'unknown',\n },\n },\n 'rtp-txstat': {\n Dur: 0,\n Pkt: 0,\n Oct: 0,\n VQMetrics: {\n VoTxCodec: 'unknown',\n rtpBitRate: 0,\n },\n },\n};\nexport const DUMMY_MOBIUS_URL = 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1';\nexport const FETCH_NAME = /^[a-zA-Z ]+/;\nexport const IP_ENDPOINT = 'myip';\nexport const INITIAL_SEQ_NUMBER = 1;\nexport const MEDIA_ENDPOINT_RESOURCE = 'media';\nexport const NETWORK_FLAP_TIMEOUT = 2000;\nexport const CALL_HOLD_SERVICE = 'callhold';\nexport const CALL_TRANSFER_SERVICE = 'calltransfer';\nexport const HOLD_ENDPOINT = 'hold';\nexport const TRANSFER_ENDPOINT = 'commit';\nexport const RESUME_ENDPOINT = 'resume';\nexport const SPARK_USER_AGENT = 'spark-user-agent';\nexport const REGISTER_RETRY_TIMEOUT = 10000;\nexport const SUPPLEMENTARY_SERVICES_TIMEOUT = 10000;\nexport const API_V1 = '/api/v1';\nexport const URL_ENDPOINT = '/calling/web/';\nexport const VALID_PHONE = /[\\d\\s()*#+.-]+/;\nexport const WEB_AGENT = '(web)';\nexport const WEBEX = 'webex';\nexport const WEBEX_WEB_CLIENT = 'webex-web-client';\nexport const CALLER_ID_FILE = 'CallerId';\nexport const UTILS_FILE = 'utils';\nexport const CALLING_CLIENT_FILE = 'CallingClient';\nexport const LINE_FILE = 'line';\nexport const CALL_FILE = 'call';\nexport const CALL_MANAGER_FILE = 'callManager';\nexport const METRIC_FILE = 'metric';\nexport const REGISTRATION_FILE = 'register';\nexport const CODEC_ID = 'codecId';\nexport const MEDIA_ID = 'id';\nexport const RTC_ICE_CANDIDATE_PAIR = 'RTCIceCandidatePair_';\nexport const LOCAL_CANDIDATE_ID = 'localCandidateId';\nexport const RTC_ICE_CANDIDATE = 'RTCIceCandidate_';\nexport const NETWORK_TYPE = 'networkType';\nexport const RTC_CODEC = 'RTCCodec_';\nexport const INBOUND_CODEC_MATCH = 'CIT01_';\nexport const OUTBOUND_CODEC_MATCH = 'COT01_';\nexport const MIME_TYPE = 'mimeType';\nexport const REMOTE_INBOUND_RTP = 'remote-inbound-rtp';\nexport const TOTAL_ROUND_TRIP_TIME = 'totalRoundTripTime';\nexport const ROUND_TRIP_TIME_MEASUREMENTS = 'roundTripTimeMeasurements';\nexport const INBOUND_RTP = 'inbound-rtp';\nexport const OUTBOUND_RTP = 'outbound-rtp';\nexport const PACKETS_RECEIVED = 'packetsReceived';\nexport const PACKETS_SENT = 'packetsSent';\nexport const PACKETS_LOST = 'packetsLost';\nexport const PACKETS_DISCARDED = 'packetsDiscarded';\nexport const JITTER_BUFFER_DELAY = 'jitterBufferDelay';\nexport const JITTER_BUFFER_EMITTED_COUNT = 'jitterBufferEmittedCount';\nexport const TIMESTAMP = 'timestamp';\nexport const TYPE = 'type';\nexport const TRANSPORT = 'transport';\nexport const TARGET_BIT_RATE = 'targetBitrate';\nexport const MEDIA_SOURCE = 'media-source';\nexport const BYTES_RECEIVED = 'bytesReceived';\nexport const BYTES_SENT = 'bytesSent';\nexport const SELECTED_CANDIDATE_PAIR_ID = 'selectedCandidatePairId';\nexport const TOTAL_SAMPLES_DURATION = 'totalSamplesDuration';\nexport const RTP_RX_STAT = 'rtp-rxstat';\nexport const RTP_TX_STAT = 'rtp-txstat';\nexport const BASE_REG_TIMER_MFACTOR = 2;\nexport const BASE_REG_RETRY_TIMER_VAL_IN_SEC = 30;\nexport const SEC_TO_MSEC_MFACTOR = 1000;\nexport const MINUTES_TO_SEC_MFACTOR = 60;\nexport const REG_RANDOM_T_FACTOR_UPPER_LIMIT = 10000;\nexport const REG_TRY_BACKUP_TIMER_VAL_IN_SEC = 1200;\nexport const REG_FAILBACK_429_MAX_RETRIES = 5;\nexport const REGISTER_UTIL = 'registerDevice';\nexport const GET_MOBIUS_SERVERS_UTIL = 'getMobiusServers';\nexport const KEEPALIVE_UTIL = 'startKeepaliveTimer';\nexport const FAILBACK_UTIL = 'executeFailback';\nexport const FAILBACK_429_RETRY_UTIL = 'scheduleFailback429Retry';\nexport const FAILOVER_UTIL = 'startFailoverTimer';\nexport const NETWORK_CHANGE_DETECTION_UTIL = 'detectNetworkChange';\nexport const CALLS_CLEARED_HANDLER_UTIL = 'callsClearedHandler';\nexport const RECONNECT_UTIL = 'reconnectOnFailure';\nexport const NOISE_REDUCTION_EFFECT = 'noise-reduction-effect';\nexport const MOBIUS_US_PROD = 'mobius-us-east-1.prod.infra.webex.com';\nexport const MOBIUS_EU_PROD = 'mobius-eu-central-1.prod.infra.webex.com';\nexport const MOBIUS_US_INT = 'mobius-us-east-1.int.infra.webex.com';\nexport const MOBIUS_EU_INT = 'mobius-eu-central-1.int.infra.webex.com';\nexport const ICE_CANDIDATES_TIMEOUT = 3000;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["VERSION","exports","USER_AGENT_VERSION","REPO_NAME","CALLING_USER_AGENT","concat","CALL_ENDPOINT_RESOURCE","CALL_STATUS_RESOURCE","CALLS_ENDPOINT_RESOURCE","CISCO_DEVICE_URL","CRLF","DEFAULT_KEEPALIVE_INTERVAL","DEFAULT_LOCAL_CALL_ID","DEFAULT_REHOMING_INTERVAL_MAX","DEFAULT_REHOMING_INTERVAL_MIN","DEFAULT_SESSION_TIMER","DEVICES_ENDPOINT_RESOURCE","DISCOVERY_URL","DUMMY_METRICS","Dur","Pkt","Oct","LatePkt","LostPkt","AvgJit","VQMetrics","VoRxCodec","VoPktSizeMs","maxJitter","VoOneWayDelayMs","networkType","hwType","VoTxCodec","rtpBitRate","DUMMY_MOBIUS_URL","FETCH_NAME","IP_ENDPOINT","INITIAL_SEQ_NUMBER","MEDIA_ENDPOINT_RESOURCE","NETWORK_FLAP_TIMEOUT","CALL_HOLD_SERVICE","CALL_TRANSFER_SERVICE","HOLD_ENDPOINT","TRANSFER_ENDPOINT","RESUME_ENDPOINT","SPARK_USER_AGENT","REGISTER_RETRY_TIMEOUT","SUPPLEMENTARY_SERVICES_TIMEOUT","API_V1","URL_ENDPOINT","VALID_PHONE","WEB_AGENT","WEBEX","WEBEX_WEB_CLIENT","CALLER_ID_FILE","UTILS_FILE","CALLING_CLIENT_FILE","LINE_FILE","CALL_FILE","CALL_MANAGER_FILE","METRIC_FILE","REGISTRATION_FILE","CODEC_ID","MEDIA_ID","RTC_ICE_CANDIDATE_PAIR","LOCAL_CANDIDATE_ID","RTC_ICE_CANDIDATE","NETWORK_TYPE","RTC_CODEC","INBOUND_CODEC_MATCH","OUTBOUND_CODEC_MATCH","MIME_TYPE","REMOTE_INBOUND_RTP","TOTAL_ROUND_TRIP_TIME","ROUND_TRIP_TIME_MEASUREMENTS","INBOUND_RTP","OUTBOUND_RTP","PACKETS_RECEIVED","PACKETS_SENT","PACKETS_LOST","PACKETS_DISCARDED","JITTER_BUFFER_DELAY","JITTER_BUFFER_EMITTED_COUNT","TIMESTAMP","TYPE","TRANSPORT","TARGET_BIT_RATE","MEDIA_SOURCE","BYTES_RECEIVED","BYTES_SENT","SELECTED_CANDIDATE_PAIR_ID","TOTAL_SAMPLES_DURATION","RTP_RX_STAT","RTP_TX_STAT","BASE_REG_TIMER_MFACTOR","BASE_REG_RETRY_TIMER_VAL_IN_SEC","SEC_TO_MSEC_MFACTOR","MINUTES_TO_SEC_MFACTOR","REG_RANDOM_T_FACTOR_UPPER_LIMIT","REG_TRY_BACKUP_TIMER_VAL_IN_SEC","REG_TRY_BACKUP_TIMER_VAL_FOR_CC_IN_SEC","REG_FAILBACK_429_MAX_RETRIES","REGISTER_UTIL","GET_MOBIUS_SERVERS_UTIL","KEEPALIVE_UTIL","FAILBACK_UTIL","FAILBACK_429_RETRY_UTIL","FAILOVER_UTIL","NETWORK_CHANGE_DETECTION_UTIL","CALLS_CLEARED_HANDLER_UTIL","RECONNECT_UTIL","NOISE_REDUCTION_EFFECT","MOBIUS_US_PROD","MOBIUS_EU_PROD","MOBIUS_US_INT","MOBIUS_EU_INT","ICE_CANDIDATES_TIMEOUT"],"sources":["constants.ts"],"sourcesContent":["export const VERSION = 'unknown';\nexport const USER_AGENT_VERSION = 'beta';\nexport const REPO_NAME = 'webex-calling';\nexport const CALLING_USER_AGENT = `${REPO_NAME}/${USER_AGENT_VERSION}`;\nexport const CALL_ENDPOINT_RESOURCE = 'call';\nexport const CALL_STATUS_RESOURCE = 'status';\nexport const CALLS_ENDPOINT_RESOURCE = 'calls';\nexport const CISCO_DEVICE_URL = 'cisco-device-url';\nexport const CRLF = '\\r\\n';\nexport const DEFAULT_KEEPALIVE_INTERVAL = 30;\nexport const DEFAULT_LOCAL_CALL_ID = 'DefaultLocalId';\nexport const DEFAULT_REHOMING_INTERVAL_MAX = 120;\nexport const DEFAULT_REHOMING_INTERVAL_MIN = 60;\nexport const DEFAULT_SESSION_TIMER = 1000 * 60 * 10;\nexport const DEVICES_ENDPOINT_RESOURCE = 'devices';\nexport const DISCOVERY_URL = 'https://ds.ciscospark.com/v1/region';\nexport const DUMMY_METRICS = {\n 'rtp-rxstat': {\n Dur: 0,\n Pkt: 0,\n Oct: 0,\n LatePkt: 0,\n LostPkt: 0,\n AvgJit: 0,\n VQMetrics: {\n VoRxCodec: 'unknown',\n VoPktSizeMs: 0,\n maxJitter: 0,\n VoOneWayDelayMs: 0,\n networkType: 'unknown',\n hwType: 'unknown',\n },\n },\n 'rtp-txstat': {\n Dur: 0,\n Pkt: 0,\n Oct: 0,\n VQMetrics: {\n VoTxCodec: 'unknown',\n rtpBitRate: 0,\n },\n },\n};\nexport const DUMMY_MOBIUS_URL = 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1';\nexport const FETCH_NAME = /^[a-zA-Z ]+/;\nexport const IP_ENDPOINT = 'myip';\nexport const INITIAL_SEQ_NUMBER = 1;\nexport const MEDIA_ENDPOINT_RESOURCE = 'media';\nexport const NETWORK_FLAP_TIMEOUT = 2000;\nexport const CALL_HOLD_SERVICE = 'callhold';\nexport const CALL_TRANSFER_SERVICE = 'calltransfer';\nexport const HOLD_ENDPOINT = 'hold';\nexport const TRANSFER_ENDPOINT = 'commit';\nexport const RESUME_ENDPOINT = 'resume';\nexport const SPARK_USER_AGENT = 'spark-user-agent';\nexport const REGISTER_RETRY_TIMEOUT = 10000;\nexport const SUPPLEMENTARY_SERVICES_TIMEOUT = 10000;\nexport const API_V1 = '/api/v1';\nexport const URL_ENDPOINT = '/calling/web/';\nexport const VALID_PHONE = /[\\d\\s()*#+.-]+/;\nexport const WEB_AGENT = '(web)';\nexport const WEBEX = 'webex';\nexport const WEBEX_WEB_CLIENT = 'webex-web-client';\nexport const CALLER_ID_FILE = 'CallerId';\nexport const UTILS_FILE = 'utils';\nexport const CALLING_CLIENT_FILE = 'CallingClient';\nexport const LINE_FILE = 'line';\nexport const CALL_FILE = 'call';\nexport const CALL_MANAGER_FILE = 'callManager';\nexport const METRIC_FILE = 'metric';\nexport const REGISTRATION_FILE = 'register';\nexport const CODEC_ID = 'codecId';\nexport const MEDIA_ID = 'id';\nexport const RTC_ICE_CANDIDATE_PAIR = 'RTCIceCandidatePair_';\nexport const LOCAL_CANDIDATE_ID = 'localCandidateId';\nexport const RTC_ICE_CANDIDATE = 'RTCIceCandidate_';\nexport const NETWORK_TYPE = 'networkType';\nexport const RTC_CODEC = 'RTCCodec_';\nexport const INBOUND_CODEC_MATCH = 'CIT01_';\nexport const OUTBOUND_CODEC_MATCH = 'COT01_';\nexport const MIME_TYPE = 'mimeType';\nexport const REMOTE_INBOUND_RTP = 'remote-inbound-rtp';\nexport const TOTAL_ROUND_TRIP_TIME = 'totalRoundTripTime';\nexport const ROUND_TRIP_TIME_MEASUREMENTS = 'roundTripTimeMeasurements';\nexport const INBOUND_RTP = 'inbound-rtp';\nexport const OUTBOUND_RTP = 'outbound-rtp';\nexport const PACKETS_RECEIVED = 'packetsReceived';\nexport const PACKETS_SENT = 'packetsSent';\nexport const PACKETS_LOST = 'packetsLost';\nexport const PACKETS_DISCARDED = 'packetsDiscarded';\nexport const JITTER_BUFFER_DELAY = 'jitterBufferDelay';\nexport const JITTER_BUFFER_EMITTED_COUNT = 'jitterBufferEmittedCount';\nexport const TIMESTAMP = 'timestamp';\nexport const TYPE = 'type';\nexport const TRANSPORT = 'transport';\nexport const TARGET_BIT_RATE = 'targetBitrate';\nexport const MEDIA_SOURCE = 'media-source';\nexport const BYTES_RECEIVED = 'bytesReceived';\nexport const BYTES_SENT = 'bytesSent';\nexport const SELECTED_CANDIDATE_PAIR_ID = 'selectedCandidatePairId';\nexport const TOTAL_SAMPLES_DURATION = 'totalSamplesDuration';\nexport const RTP_RX_STAT = 'rtp-rxstat';\nexport const RTP_TX_STAT = 'rtp-txstat';\nexport const BASE_REG_TIMER_MFACTOR = 2;\nexport const BASE_REG_RETRY_TIMER_VAL_IN_SEC = 30;\nexport const SEC_TO_MSEC_MFACTOR = 1000;\nexport const MINUTES_TO_SEC_MFACTOR = 60;\nexport const REG_RANDOM_T_FACTOR_UPPER_LIMIT = 10000;\nexport const REG_TRY_BACKUP_TIMER_VAL_IN_SEC = 1200;\nexport const REG_TRY_BACKUP_TIMER_VAL_FOR_CC_IN_SEC = 114;\nexport const REG_FAILBACK_429_MAX_RETRIES = 5;\nexport const REGISTER_UTIL = 'registerDevice';\nexport const GET_MOBIUS_SERVERS_UTIL = 'getMobiusServers';\nexport const KEEPALIVE_UTIL = 'startKeepaliveTimer';\nexport const FAILBACK_UTIL = 'executeFailback';\nexport const FAILBACK_429_RETRY_UTIL = 'scheduleFailback429Retry';\nexport const FAILOVER_UTIL = 'startFailoverTimer';\nexport const NETWORK_CHANGE_DETECTION_UTIL = 'detectNetworkChange';\nexport const CALLS_CLEARED_HANDLER_UTIL = 'callsClearedHandler';\nexport const RECONNECT_UTIL = 'reconnectOnFailure';\nexport const NOISE_REDUCTION_EFFECT = 'noise-reduction-effect';\nexport const MOBIUS_US_PROD = 'mobius-us-east-1.prod.infra.webex.com';\nexport const MOBIUS_EU_PROD = 'mobius-eu-central-1.prod.infra.webex.com';\nexport const MOBIUS_US_INT = 'mobius-us-east-1.int.infra.webex.com';\nexport const MOBIUS_EU_INT = 'mobius-eu-central-1.int.infra.webex.com';\nexport const ICE_CANDIDATES_TIMEOUT = 3000;\n"],"mappings":"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"}
|
|
@@ -59,8 +59,10 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
59
59
|
(0, _defineProperty2.default)(this, "backupMobiusUris", void 0);
|
|
60
60
|
(0, _defineProperty2.default)(this, "registerRetry", false);
|
|
61
61
|
(0, _defineProperty2.default)(this, "reconnectPending", false);
|
|
62
|
+
(0, _defineProperty2.default)(this, "isCCFlow", false);
|
|
62
63
|
this.sdkConnector = _SDKConnector.default;
|
|
63
64
|
this.serviceData = serviceData;
|
|
65
|
+
this.isCCFlow = serviceData.indicator === _types3.ServiceIndicator.CONTACT_CENTER;
|
|
64
66
|
if (!this.sdkConnector.getWebex()) {
|
|
65
67
|
_SDKConnector.default.setWebex(webex);
|
|
66
68
|
}
|
|
@@ -340,6 +342,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
340
342
|
timeElapsed,
|
|
341
343
|
loggerContext,
|
|
342
344
|
interval,
|
|
345
|
+
TIMER_THRESHOLD,
|
|
343
346
|
excessVal,
|
|
344
347
|
abort,
|
|
345
348
|
scheduledTime,
|
|
@@ -354,12 +357,13 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
354
357
|
method: this.startFailoverTimer.name
|
|
355
358
|
};
|
|
356
359
|
interval = this.getRegRetryInterval(attempt);
|
|
357
|
-
|
|
358
|
-
|
|
360
|
+
TIMER_THRESHOLD = this.isCCFlow ? _constants.REG_TRY_BACKUP_TIMER_VAL_FOR_CC_IN_SEC : _constants.REG_TRY_BACKUP_TIMER_VAL_IN_SEC;
|
|
361
|
+
if (timeElapsed + interval > TIMER_THRESHOLD) {
|
|
362
|
+
excessVal = timeElapsed + interval - TIMER_THRESHOLD;
|
|
359
363
|
interval -= excessVal;
|
|
360
364
|
}
|
|
361
365
|
if (!(interval > _constants.BASE_REG_RETRY_TIMER_VAL_IN_SEC)) {
|
|
362
|
-
_context10.next =
|
|
366
|
+
_context10.next = 12;
|
|
363
367
|
break;
|
|
364
368
|
}
|
|
365
369
|
scheduledTime = Math.floor((0, _now.default)() / 1000);
|
|
@@ -397,17 +401,17 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
397
401
|
}, _callee7);
|
|
398
402
|
})), interval * _constants.SEC_TO_MSEC_MFACTOR);
|
|
399
403
|
_Logger.default.log("Scheduled retry with primary in ".concat(interval, " seconds, number of attempts : ").concat(attempt), loggerContext);
|
|
400
|
-
_context10.next =
|
|
404
|
+
_context10.next = 21;
|
|
401
405
|
break;
|
|
402
|
-
case
|
|
406
|
+
case 12:
|
|
403
407
|
if (!this.backupMobiusUris.length) {
|
|
404
|
-
_context10.next =
|
|
408
|
+
_context10.next = 20;
|
|
405
409
|
break;
|
|
406
410
|
}
|
|
407
411
|
_Logger.default.log('Failing over to backup servers.', loggerContext);
|
|
408
|
-
_context10.next =
|
|
412
|
+
_context10.next = 16;
|
|
409
413
|
return this.attemptRegistrationWithServers(this.startFailoverTimer.name, this.backupMobiusUris);
|
|
410
|
-
case
|
|
414
|
+
case 16:
|
|
411
415
|
abort = _context10.sent;
|
|
412
416
|
if (!abort && !this.isDeviceRegistered()) {
|
|
413
417
|
interval = this.getRegRetryInterval();
|
|
@@ -443,13 +447,13 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
443
447
|
})), interval * _constants.SEC_TO_MSEC_MFACTOR);
|
|
444
448
|
_Logger.default.log("Scheduled retry with backup servers in ".concat(interval, " seconds."), loggerContext);
|
|
445
449
|
}
|
|
446
|
-
_context10.next =
|
|
450
|
+
_context10.next = 21;
|
|
447
451
|
break;
|
|
448
|
-
case
|
|
452
|
+
case 20:
|
|
449
453
|
(0, _common.emitFinalFailure)(function (clientError) {
|
|
450
454
|
_this.lineEmitter(_types4.LINE_EVENTS.ERROR, undefined, clientError);
|
|
451
455
|
}, loggerContext);
|
|
452
|
-
case
|
|
456
|
+
case 21:
|
|
453
457
|
case "end":
|
|
454
458
|
return _context10.stop();
|
|
455
459
|
}
|
|
@@ -1044,6 +1048,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1044
1048
|
var _this7 = this;
|
|
1045
1049
|
var keepAliveRetryCount = 0;
|
|
1046
1050
|
this.clearKeepaliveTimer();
|
|
1051
|
+
var RETRY_COUNT_THRESHOLD = this.isCCFlow ? 4 : 5;
|
|
1047
1052
|
this.keepaliveTimer = setInterval( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21() {
|
|
1048
1053
|
var logContext;
|
|
1049
1054
|
return _regenerator.default.wrap(function _callee21$(_context21) {
|
|
@@ -1059,7 +1064,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1059
1064
|
return _regenerator.default.wrap(function _callee20$(_context20) {
|
|
1060
1065
|
while (1) switch (_context20.prev = _context20.next) {
|
|
1061
1066
|
case 0:
|
|
1062
|
-
if (!(_this7.isDeviceRegistered() && keepAliveRetryCount <
|
|
1067
|
+
if (!(_this7.isDeviceRegistered() && keepAliveRetryCount < RETRY_COUNT_THRESHOLD)) {
|
|
1063
1068
|
_context20.next = 29;
|
|
1064
1069
|
break;
|
|
1065
1070
|
}
|
|
@@ -1093,7 +1098,7 @@ var Registration = exports.Registration = /*#__PURE__*/function () {
|
|
|
1093
1098
|
});
|
|
1094
1099
|
case 17:
|
|
1095
1100
|
abort = _context20.sent;
|
|
1096
|
-
if (!(abort || keepAliveRetryCount >=
|
|
1101
|
+
if (!(abort || keepAliveRetryCount >= RETRY_COUNT_THRESHOLD)) {
|
|
1097
1102
|
_context20.next = 28;
|
|
1098
1103
|
break;
|
|
1099
1104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_uuid","require","_types","_common","_types2","_Metrics","_calling","_Logger","_interopRequireDefault","_SDKConnector","_types3","_constants","_types4","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","Registration","exports","webex","serviceData","mutex","lineEmitter","logLevel","_classCallCheck2","default","_defineProperty2","sdkConnector","SDKConnector","getWebex","setWebex","userId","internal","device","registrationStatus","RegistrationStatus","IDLE","failback429RetryAttempts","log","setLogger","REGISTRATION_FILE","rehomingIntervalMin","DEFAULT_REHOMING_INTERVAL_MIN","rehomingIntervalMax","DEFAULT_REHOMING_INTERVAL_MAX","callManager","getCallManager","indicator","metricManager","getMetricManager","primaryMobiusUris","backupMobiusUris","_createClass2","key","getActiveMobiusUrl","activeMobiusUrl","setActiveMobiusUrl","url","info","concat","method","file","updateActiveMobius","setMobiusServers","_postKeepAlive","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","abrupt","request","uri","HTTP_METHODS","POST","headers","CISCO_DEVICE_URL","SPARK_USER_AGENT","CALLING_USER_AGENT","service","ALLOWED_SERVICES","MOBIUS","stop","postKeepAlive","_x","apply","arguments","_deleteRegistration","_callee2","deviceId","deviceUrl","_response","response","_callee2$","_context2","t0","fetch","t1","DEVICES_ENDPOINT_RESOURCE","t2","DELETE","t3","t4","t5","t6","credentials","getUserToken","t7","sent","t8","t9","WEBEX_WEB_CLIENT","uuid","t10","t11","t12","t13","t14","t15","warn","setStatus","INACTIVE","LINE_EVENTS","UNREGISTERED","json","deleteRegistration","_x2","_x3","_x4","_postRegistration","_callee3","deviceInfo","_callee3$","_context3","clientDeviceUri","body","postRegistration","_x5","_restorePreviousRegistration","_callee4","caller","abort","_callee4$","_context4","attemptRegistrationWithServers","restorePreviousRegistration","_x6","_scheduleFailback429Retry","_callee5","interval","_callee5$","_context5","REG_FAILBACK_429_MAX_RETRIES","clearFailbackTimer","FAILBACK_429_RETRY_UTIL","getRegRetryInterval","startFailbackTimer","isDeviceRegistered","restartRegistration","scheduleFailback429Retry","attempt","undefined","BASE_REG_RETRY_TIMER_VAL_IN_SEC","Math","pow","BASE_REG_TIMER_MFACTOR","floor","random","REG_RANDOM_T_FACTOR_UPPER_LIMIT","SEC_TO_MSEC_MFACTOR","_startFailoverTimer","_callee10","_this","timeElapsed","loggerContext","excessVal","scheduledTime","_args10","_callee10$","_context10","startFailoverTimer","REG_TRY_BACKUP_TIMER_VAL_IN_SEC","_now","setTimeout","_callee7","_callee7$","_context7","runExclusive","_callee6","currentTime","_callee6$","_context6","_callee9","_callee9$","_context9","_callee8","_callee8$","_context8","emitFinalFailure","clientError","ERROR","failbackTimer","clearTimeout","isFailbackRequired","indexOf","getFailbackInterval","initiateFailback","intervalInMinutes","MINUTES_TO_SEC_MFACTOR","intervalInSeconds","_this2","_callee11","_callee11$","_context11","executeFailback","_executeFailback","_callee13","_this3","_callee13$","_context13","_callee12","abortNew","_callee12$","_context12","_keys","getActiveCalls","deregister","FAILBACK_UTIL","setIntervalValues","getDeviceInfo","ACTIVE","getStatus","_restartRegistration","_callee14","_callee14$","_context14","_x7","_handleConnectionRestoration","_callee16","retry","_this4","_callee16$","_context16","_callee15","_callee15$","_context15","handleConnectionRestoration","clearKeepaliveTimer","_x8","restoreRegistrationCallBack","_this5","_ref8","_callee17","restoreData","logContext","restore","finalError","_callee17$","_context17","isRegRetry","getExistingDevice","setRegRetry","_x9","_x10","_triggerRegistration","_callee18","_callee18$","_context18","triggerRegistration","_attemptRegistrationWithServers","_callee19","_this6","servers","_iterator","_step","_this$deviceInfo$devi","resp","error","_args19","_callee19$","_context19","CONNECTING","REGISTERED","setDeviceInfo","submitRegistrationMetric","METRIC_EVENT","REGISTRATION","REG_ACTION","REGISTER","METRIC_TYPE","BEHAVIORAL","startKeepaliveTimer","keepaliveInterval","handleRegistrationErrors","REGISTRATION_ERROR","statusCode","ERROR_CODE","TOO_MANY_REQUESTS","finish","_x11","_this7","keepAliveRetryCount","keepaliveTimer","setInterval","_callee21","_callee21$","_context21","_callee20","res","_callee20$","_context20","RECONNECTED","KEEPALIVE_FAILURE","reconnectOnFailure","RECONNECTING","clearInterval","isReconnectPending","reconnectPending","_deregister","_callee22","_this$deviceInfo$devi2","_this$deviceInfo$devi3","_callee22$","_context22","registerRetry","devices","DEFAULT_KEEPALIVE_INTERVAL","stringToReplace","replace","_reconnectOnFailure","_callee23","_callee23$","_context23","_x12","createRegistration"],"sources":["register.ts"],"sourcesContent":["import {v4 as uuid} from 'uuid';\nimport {Mutex} from 'async-mutex';\nimport {ERROR_CODE} from '../../Errors/types';\nimport {emitFinalFailure, handleRegistrationErrors} from '../../common';\n\nimport {IMetricManager, METRIC_EVENT, METRIC_TYPE, REG_ACTION} from '../../Metrics/types';\nimport {getMetricManager} from '../../Metrics';\nimport {ICallManager} from '../calling/types';\nimport {getCallManager} from '../calling';\nimport {LOGGER} from '../../Logger/types';\nimport log from '../../Logger';\nimport {IRegistration} from './types';\nimport SDKConnector from '../../SDKConnector';\nimport {\n ALLOWED_SERVICES,\n HTTP_METHODS,\n IDeviceInfo,\n RegistrationStatus,\n ServiceData,\n WebexRequestPayload,\n} from '../../common/types';\nimport {ISDKConnector, WebexSDK} from '../../SDKConnector/types';\nimport {\n CALLING_USER_AGENT,\n CISCO_DEVICE_URL,\n DEVICES_ENDPOINT_RESOURCE,\n SPARK_USER_AGENT,\n WEBEX_WEB_CLIENT,\n BASE_REG_RETRY_TIMER_VAL_IN_SEC,\n BASE_REG_TIMER_MFACTOR,\n SEC_TO_MSEC_MFACTOR,\n REG_RANDOM_T_FACTOR_UPPER_LIMIT,\n REG_TRY_BACKUP_TIMER_VAL_IN_SEC,\n MINUTES_TO_SEC_MFACTOR,\n FAILBACK_429_RETRY_UTIL,\n REG_FAILBACK_429_MAX_RETRIES,\n FAILBACK_UTIL,\n REGISTRATION_FILE,\n DEFAULT_REHOMING_INTERVAL_MIN,\n DEFAULT_REHOMING_INTERVAL_MAX,\n DEFAULT_KEEPALIVE_INTERVAL,\n} from '../constants';\nimport {LINE_EVENTS, LineEmitterCallback} from '../line/types';\nimport {LineError} from '../../Errors/catalog/LineError';\n\n/**\n *\n */\nexport class Registration implements IRegistration {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private userId = '';\n\n private serviceData: ServiceData;\n\n private failback429RetryAttempts: number;\n private registrationStatus: RegistrationStatus;\n private failbackTimer?: NodeJS.Timer;\n private activeMobiusUrl!: string;\n\n private keepaliveTimer: NodeJS.Timer | undefined;\n private rehomingIntervalMin: number;\n\n private rehomingIntervalMax: number;\n private mutex: Mutex;\n private metricManager: IMetricManager;\n private lineEmitter: LineEmitterCallback;\n private callManager: ICallManager;\n private deviceInfo: IDeviceInfo = {};\n private primaryMobiusUris: string[];\n private backupMobiusUris: string[];\n private registerRetry = false;\n private reconnectPending = false;\n\n /**\n */\n constructor(\n webex: WebexSDK,\n serviceData: ServiceData,\n mutex: Mutex,\n lineEmitter: LineEmitterCallback,\n logLevel: LOGGER\n ) {\n this.sdkConnector = SDKConnector;\n this.serviceData = serviceData;\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.webex = this.sdkConnector.getWebex();\n this.userId = this.webex.internal.device.userId;\n this.registrationStatus = RegistrationStatus.IDLE;\n this.failback429RetryAttempts = 0;\n log.setLogger(logLevel, REGISTRATION_FILE);\n this.rehomingIntervalMin = DEFAULT_REHOMING_INTERVAL_MIN;\n this.rehomingIntervalMax = DEFAULT_REHOMING_INTERVAL_MAX;\n this.mutex = mutex;\n this.callManager = getCallManager(this.webex, serviceData.indicator);\n this.metricManager = getMetricManager(this.webex, serviceData.indicator);\n this.lineEmitter = lineEmitter;\n\n this.primaryMobiusUris = [];\n this.backupMobiusUris = [];\n }\n\n public getActiveMobiusUrl(): string {\n return this.activeMobiusUrl;\n }\n\n public setActiveMobiusUrl(url: string) {\n log.info(`ActiveMobiusUrl: ${url}`, {method: 'setActiveMobiusUrl', file: REGISTRATION_FILE});\n this.activeMobiusUrl = url;\n this.callManager.updateActiveMobius(url);\n }\n\n public setMobiusServers(primaryMobiusUris: string[], backupMobiusUris: string[]) {\n this.primaryMobiusUris = primaryMobiusUris;\n this.backupMobiusUris = backupMobiusUris;\n }\n\n /**\n * Implementation of sending keepalive.\n *\n */\n private async postKeepAlive(url: string) {\n return <WebexRequestPayload>this.webex.request({\n uri: `${url}/status`,\n method: HTTP_METHODS.POST,\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\n /**\n * Implementation of delete device.\n *\n */\n private async deleteRegistration(url: string, deviceId: string, deviceUrl: string) {\n let response;\n try {\n response = await fetch(`${url}${DEVICES_ENDPOINT_RESOURCE}/${deviceId}`, {\n method: HTTP_METHODS.DELETE,\n headers: {\n [CISCO_DEVICE_URL]: deviceUrl,\n Authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${WEBEX_WEB_CLIENT}_${uuid()}`,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n } catch (error) {\n log.warn(`Delete failed with Mobius`, {});\n }\n\n this.setStatus(RegistrationStatus.INACTIVE);\n this.lineEmitter(LINE_EVENTS.UNREGISTERED);\n\n return <WebexRequestPayload>response?.json();\n }\n\n /**\n * Implementation of POST request for device registration.\n *\n */\n private async postRegistration(url: string) {\n const deviceInfo = {\n userId: this.userId,\n clientDeviceUri: this.webex.internal.device.url,\n serviceData: this.serviceData,\n };\n\n return <WebexRequestPayload>this.webex.request({\n uri: `${url}device`,\n method: HTTP_METHODS.POST,\n headers: {\n [CISCO_DEVICE_URL]: deviceInfo.clientDeviceUri,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n body: deviceInfo,\n service: ALLOWED_SERVICES.MOBIUS,\n });\n }\n\n /**\n * Re-attempts registration with the mobius url it was last registered\n * to, that mobius url is expected to be updated already in this.activeMobiusUrl.\n */\n private async restorePreviousRegistration(caller: string): Promise<boolean> {\n let abort = false;\n\n if (this.activeMobiusUrl) {\n abort = await this.attemptRegistrationWithServers(caller, [this.activeMobiusUrl]);\n }\n\n return abort;\n }\n\n /**\n * When a failback request is rejected with 429, it means the\n * request did not even land on primary mobius to know if it\n * can handle this device registration now, in such cases this\n * method is called to retry sooner than the rehoming timer value.\n */\n private async scheduleFailback429Retry() {\n if (this.failback429RetryAttempts >= REG_FAILBACK_429_MAX_RETRIES) {\n return;\n }\n this.clearFailbackTimer();\n this.failback429RetryAttempts += 1;\n log.log(`Received 429 while rehoming, 429 retry count : ${this.failback429RetryAttempts}`, {\n file: REGISTRATION_FILE,\n method: FAILBACK_429_RETRY_UTIL,\n });\n const interval = this.getRegRetryInterval(this.failback429RetryAttempts);\n\n this.startFailbackTimer(interval);\n const abort = await this.restorePreviousRegistration(FAILBACK_429_RETRY_UTIL);\n\n if (!abort && !this.isDeviceRegistered()) {\n await this.restartRegistration(FAILBACK_429_RETRY_UTIL);\n }\n }\n\n /**\n * Calculates and returns a random interval value using input argument\n * attempt as the variable factor.\n *\n * attempted already.\n */\n private getRegRetryInterval(attempt = 1): number {\n return (\n BASE_REG_RETRY_TIMER_VAL_IN_SEC +\n BASE_REG_TIMER_MFACTOR ** attempt +\n Math.floor(\n (Math.random() * (REG_RANDOM_T_FACTOR_UPPER_LIMIT - SEC_TO_MSEC_MFACTOR + 1) +\n SEC_TO_MSEC_MFACTOR) /\n SEC_TO_MSEC_MFACTOR\n )\n );\n }\n\n /**\n * Schedules registration retry with primary mobius servers at a random\n * interval calculated based on the number of times registration retry is already done\n * Once the time taken since the beginning of retry attempt exceeds the\n * retry threshold, it switches over to backup mobius servers.\n *\n */\n private async startFailoverTimer(attempt = 1, timeElapsed = 0) {\n const loggerContext = {\n file: REGISTRATION_FILE,\n method: this.startFailoverTimer.name,\n };\n\n let interval = this.getRegRetryInterval(attempt);\n\n if (timeElapsed + interval > REG_TRY_BACKUP_TIMER_VAL_IN_SEC) {\n const excessVal = timeElapsed + interval - REG_TRY_BACKUP_TIMER_VAL_IN_SEC;\n\n interval -= excessVal;\n }\n\n let abort;\n\n if (interval > BASE_REG_RETRY_TIMER_VAL_IN_SEC) {\n const scheduledTime = Math.floor(Date.now() / 1000);\n\n setTimeout(async () => {\n await this.mutex.runExclusive(async () => {\n abort = await this.attemptRegistrationWithServers(this.startFailoverTimer.name);\n const currentTime = Math.floor(Date.now() / 1000);\n\n if (!abort && !this.isDeviceRegistered()) {\n await this.startFailoverTimer(attempt + 1, timeElapsed + (currentTime - scheduledTime));\n }\n });\n }, interval * SEC_TO_MSEC_MFACTOR);\n log.log(\n `Scheduled retry with primary in ${interval} seconds, number of attempts : ${attempt}`,\n loggerContext\n );\n } else if (this.backupMobiusUris.length) {\n log.log('Failing over to backup servers.', loggerContext);\n abort = await this.attemptRegistrationWithServers(\n this.startFailoverTimer.name,\n this.backupMobiusUris\n );\n if (!abort && !this.isDeviceRegistered()) {\n interval = this.getRegRetryInterval();\n setTimeout(async () => {\n await this.mutex.runExclusive(async () => {\n abort = await this.attemptRegistrationWithServers(\n this.startFailoverTimer.name,\n this.backupMobiusUris\n );\n if (!abort && !this.isDeviceRegistered()) {\n emitFinalFailure((clientError: LineError) => {\n this.lineEmitter(LINE_EVENTS.ERROR, undefined, clientError);\n }, loggerContext);\n }\n });\n }, interval * SEC_TO_MSEC_MFACTOR);\n log.log(`Scheduled retry with backup servers in ${interval} seconds.`, loggerContext);\n }\n } else {\n emitFinalFailure((clientError: LineError) => {\n this.lineEmitter(LINE_EVENTS.ERROR, undefined, clientError);\n }, loggerContext);\n }\n }\n\n /**\n * Clears the failback timer if running.\n */\n private clearFailbackTimer() {\n if (this.failbackTimer) {\n clearTimeout(this.failbackTimer);\n this.failbackTimer = undefined;\n }\n }\n\n /**\n * Returns true if device is registered with a backup mobius.\n */\n private isFailbackRequired(): boolean {\n return this.isDeviceRegistered() && this.primaryMobiusUris.indexOf(this.activeMobiusUrl) === -1;\n }\n\n /**\n * Calculates and returns a random value between rehomingIntervalMin and\n * rehomingIntervalMax.\n */\n private getFailbackInterval(): number {\n return Math.floor(\n Math.random() * (this.rehomingIntervalMax - this.rehomingIntervalMin + 1) +\n this.rehomingIntervalMin\n );\n }\n\n /**\n * Starts failback timer to move to primary mobius if device\n * is registered with a backup mobius.\n */\n private initiateFailback() {\n if (this.isFailbackRequired()) {\n if (!this.failbackTimer) {\n this.failback429RetryAttempts = 0;\n const intervalInMinutes = this.getFailbackInterval();\n\n this.startFailbackTimer(intervalInMinutes * MINUTES_TO_SEC_MFACTOR);\n }\n } else {\n this.failback429RetryAttempts = 0;\n this.clearFailbackTimer();\n }\n }\n\n /**\n * Starts failback timer with the interval value received.\n *\n */\n private startFailbackTimer(intervalInSeconds: number) {\n this.failbackTimer = setTimeout(\n async () => this.executeFailback(),\n intervalInSeconds * SEC_TO_MSEC_MFACTOR\n );\n log.log(`Failback scheduled after ${intervalInSeconds} seconds.`, {\n file: REGISTRATION_FILE,\n method: this.startFailbackTimer.name,\n });\n }\n\n /**\n * Core logic for the failback processing, scheduled and executed\n * at failback timer expiry.\n */\n private async executeFailback() {\n await this.mutex.runExclusive(async () => {\n if (this.isFailbackRequired()) {\n if (Object.keys(this.callManager.getActiveCalls()).length === 0) {\n log.info(`Attempting failback to primary.`, {\n file: REGISTRATION_FILE,\n method: this.executeFailback.name,\n });\n await this.deregister();\n const abort = await this.attemptRegistrationWithServers(FAILBACK_UTIL);\n if (!abort && !this.isDeviceRegistered()) {\n const abortNew = await this.restorePreviousRegistration(FAILBACK_UTIL);\n\n if (abortNew) {\n this.clearFailbackTimer();\n\n return;\n }\n\n if (!this.isDeviceRegistered()) {\n await this.restartRegistration(this.executeFailback.name);\n } else {\n this.failbackTimer = undefined;\n this.initiateFailback();\n }\n }\n } else {\n log.info('Active calls present, deferring failback to next cycle.', {\n file: REGISTRATION_FILE,\n method: this.executeFailback.name,\n });\n this.failbackTimer = undefined;\n this.initiateFailback();\n }\n }\n });\n }\n\n /**\n * Updates rehomingIntervalMin and rehomingIntervalMax values\n * if received in registration response from a primary mobius\n * server.\n *\n */\n private setIntervalValues(deviceInfo: IDeviceInfo) {\n if (this.primaryMobiusUris.indexOf(this.activeMobiusUrl) !== -1) {\n this.rehomingIntervalMin = deviceInfo?.rehomingIntervalMin\n ? deviceInfo.rehomingIntervalMin\n : DEFAULT_REHOMING_INTERVAL_MIN;\n this.rehomingIntervalMax = deviceInfo?.rehomingIntervalMax\n ? deviceInfo.rehomingIntervalMax\n : DEFAULT_REHOMING_INTERVAL_MAX;\n }\n }\n\n /**\n * Retrieves information about the device as {@link IDeviceInfo}.\n *\n */\n public getDeviceInfo(): IDeviceInfo {\n return this.deviceInfo;\n }\n\n /**\n * Checks if the device is currently registered.\n *\n * by checking if isRegistered state is set to\n * ACTIVE, else false.\n */\n public isDeviceRegistered(): boolean {\n return this.registrationStatus === RegistrationStatus.ACTIVE;\n }\n\n public getStatus(): RegistrationStatus {\n return this.registrationStatus;\n }\n\n public setStatus(value: RegistrationStatus) {\n this.registrationStatus = value;\n }\n\n /**\n * Start fresh registration cycle with the mobius\n * server list already present.\n *\n */\n private async restartRegistration(caller: string) {\n /*\n * Cancel any failback timer running\n * and start fresh registration attempt with retry as true.\n */\n this.clearFailbackTimer();\n this.failback429RetryAttempts = 0;\n const abort = await this.attemptRegistrationWithServers(caller, this.primaryMobiusUris);\n\n if (!abort && !this.isDeviceRegistered()) {\n await this.startFailoverTimer();\n }\n }\n\n /**\n * Restores the connection and attempts refreshing existing registration with server.\n * Allows retry if not restored in the first attempt.\n *\n */\n public async handleConnectionRestoration(retry: boolean): Promise<boolean> {\n await this.mutex.runExclusive(async () => {\n /* Check retry once again to see if another timer thread has not finished the job already. */\n if (retry) {\n log.info('Mercury connection is up again, re-registering with Webex Calling if needed', {\n file: REGISTRATION_FILE,\n method: this.handleConnectionRestoration.name,\n });\n this.clearKeepaliveTimer();\n if (this.isDeviceRegistered()) {\n // eslint-disable-next-line no-await-in-loop\n await this.deregister();\n }\n\n /*\n * Do not attempt registration if mobius url is not set in this.activeMobiusUrl\n * as that'd mean initial registration itself is not finished yet, let\n * failover timer handle the registration in that case.\n */\n if (this.activeMobiusUrl) {\n /*\n * When restoring connectivity, register with same url first\n * where it was registered last even if it was a backup url,\n * because failback timer may already be running to register\n * it back to primary.\n */\n const abort = await this.restorePreviousRegistration(\n this.handleConnectionRestoration.name\n );\n\n if (!abort && !this.isDeviceRegistered()) {\n await this.restartRegistration(this.handleConnectionRestoration.name);\n }\n }\n retry = false;\n }\n });\n\n return retry;\n }\n\n /**\n * Callback function for restoring registration in case of failure during initial registration\n * due to device registration already exists.\n *\n */\n private restoreRegistrationCallBack() {\n return async (restoreData: IDeviceInfo, caller: string) => {\n const logContext = {file: REGISTRATION_FILE, method: caller};\n if (!this.isRegRetry()) {\n log.info('Registration restoration in progress.', logContext);\n const restore = this.getExistingDevice(restoreData);\n\n if (restore) {\n this.setRegRetry(true);\n await this.deregister();\n const finalError = await this.restorePreviousRegistration(caller);\n this.setRegRetry(false);\n if (this.isDeviceRegistered()) {\n log.info('Registration restored successfully.', logContext);\n }\n\n return finalError;\n }\n this.lineEmitter(LINE_EVENTS.UNREGISTERED);\n } else {\n this.lineEmitter(LINE_EVENTS.UNREGISTERED);\n }\n\n return false;\n };\n }\n\n /**\n * Triggers the registration with the given list of Mobius servers\n * Registration is attempted with primary and backup until it succeeds or the list is exhausted\n */\n public async triggerRegistration() {\n if (this.primaryMobiusUris.length > 0) {\n const abort = await this.attemptRegistrationWithServers(\n this.triggerRegistration.name,\n this.primaryMobiusUris\n );\n\n if (!this.isDeviceRegistered() && !abort) {\n await this.startFailoverTimer();\n }\n }\n }\n\n /**\n * Attempts registration with the server list received in\n * argument one by one until registration either succeeds with\n * one or all of them are tried.\n *\n * attempt has hit a final error and a retry should not be scheduled\n * else false.\n */\n private async attemptRegistrationWithServers(\n caller: string,\n servers: string[] = this.primaryMobiusUris\n ): Promise<boolean> {\n let abort = false;\n\n if (this.isDeviceRegistered()) {\n log.log(`[${caller}] : Device already registered with : ${this.activeMobiusUrl}`, {\n file: REGISTRATION_FILE,\n method: this.attemptRegistrationWithServers.name,\n });\n\n return abort;\n }\n for (const url of servers) {\n try {\n abort = false;\n this.registrationStatus = RegistrationStatus.INACTIVE;\n this.lineEmitter(LINE_EVENTS.CONNECTING);\n log.log(`[${caller}] : Mobius url to contact: ${url}`, {\n file: REGISTRATION_FILE,\n method: this.attemptRegistrationWithServers.name,\n });\n // eslint-disable-next-line no-await-in-loop\n const resp = await this.postRegistration(url);\n this.deviceInfo = resp.body as IDeviceInfo;\n this.registrationStatus = RegistrationStatus.ACTIVE;\n this.lineEmitter(LINE_EVENTS.REGISTERED, resp.body as IDeviceInfo);\n this.setActiveMobiusUrl(url);\n this.setIntervalValues(this.deviceInfo);\n this.metricManager.setDeviceInfo(this.deviceInfo);\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n undefined\n );\n this.startKeepaliveTimer(\n this.deviceInfo.device?.uri as string,\n this.deviceInfo.keepaliveInterval as number\n );\n this.initiateFailback();\n break;\n } catch (err: unknown) {\n const body = err as WebexRequestPayload;\n\n // eslint-disable-next-line no-await-in-loop, @typescript-eslint/no-unused-vars\n abort = await handleRegistrationErrors(\n body,\n (clientError, finalError) => {\n if (finalError) {\n this.lineEmitter(LINE_EVENTS.ERROR, undefined, clientError);\n } else {\n this.lineEmitter(LINE_EVENTS.UNREGISTERED);\n }\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n },\n {method: this.attemptRegistrationWithServers.name, file: REGISTRATION_FILE},\n this.restoreRegistrationCallBack()\n );\n if (this.registrationStatus === RegistrationStatus.ACTIVE) {\n log.info(\n `[${caller}] : Device is already restored, active mobius url: ${this.activeMobiusUrl}`,\n {\n file: REGISTRATION_FILE,\n method: this.attemptRegistrationWithServers.name,\n }\n );\n break;\n }\n if (abort) {\n this.setStatus(RegistrationStatus.INACTIVE);\n break;\n } else if (caller === this.executeFailback.name) {\n const error = body.statusCode;\n\n if (error === ERROR_CODE.TOO_MANY_REQUESTS) {\n // eslint-disable-next-line no-await-in-loop\n await this.scheduleFailback429Retry();\n abort = true;\n break;\n }\n }\n }\n }\n\n return abort;\n }\n\n /**\n * This method sets up a timer to periodically send keep-alive requests to maintain a connection.\n * It handles retries, error handling, and re-registration attempts based on the response, ensuring continuous connectivity with the server.\n */\n private startKeepaliveTimer(url: string, interval: number) {\n let keepAliveRetryCount = 0;\n this.clearKeepaliveTimer();\n this.keepaliveTimer = setInterval(async () => {\n const logContext = {\n file: REGISTRATION_FILE,\n method: this.startKeepaliveTimer.name,\n };\n await this.mutex.runExclusive(async () => {\n if (this.isDeviceRegistered() && keepAliveRetryCount < 5) {\n try {\n const res = await this.postKeepAlive(url);\n log.info(`Sent Keepalive, status: ${res.statusCode}`, logContext);\n if (keepAliveRetryCount > 0) {\n this.lineEmitter(LINE_EVENTS.RECONNECTED);\n }\n keepAliveRetryCount = 0;\n } catch (err: unknown) {\n keepAliveRetryCount += 1;\n const error = <WebexRequestPayload>err;\n\n log.warn(\n `Keep-alive missed ${keepAliveRetryCount} times. Status -> ${error.statusCode} `,\n logContext\n );\n\n const abort = await handleRegistrationErrors(\n error,\n (clientError, finalError) => {\n if (finalError) {\n this.lineEmitter(LINE_EVENTS.ERROR, undefined, clientError);\n }\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION,\n REG_ACTION.KEEPALIVE_FAILURE,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n },\n {method: this.startKeepaliveTimer.name, file: REGISTRATION_FILE}\n );\n\n if (abort || keepAliveRetryCount >= 5) {\n this.setStatus(RegistrationStatus.INACTIVE);\n this.clearKeepaliveTimer();\n this.clearFailbackTimer();\n this.lineEmitter(LINE_EVENTS.UNREGISTERED);\n\n if (!abort) {\n /* In case of non-final error, re-attempt registration */\n await this.reconnectOnFailure(this.startKeepaliveTimer.name);\n }\n } else {\n this.lineEmitter(LINE_EVENTS.RECONNECTING);\n }\n }\n }\n });\n }, interval * 1000);\n }\n\n /**\n * Clears the keepalive timer if running.\n */\n public clearKeepaliveTimer() {\n if (this.keepaliveTimer) {\n clearInterval(this.keepaliveTimer);\n this.keepaliveTimer = undefined;\n }\n }\n\n public isReconnectPending(): boolean {\n return this.reconnectPending;\n }\n\n public async deregister() {\n try {\n await this.deleteRegistration(\n this.activeMobiusUrl as string,\n this.deviceInfo.device?.deviceId as string,\n this.deviceInfo.device?.clientDeviceUri as string\n );\n } catch (err) {\n log.warn(`Delete failed with Mobius`, {});\n }\n\n this.clearKeepaliveTimer();\n this.setStatus(RegistrationStatus.INACTIVE);\n }\n\n /**\n * Indicates whether the calling client is in a mode\n * to retry registration.\n */\n private isRegRetry(): boolean {\n return this.registerRetry;\n }\n\n /**\n * Sets the received value in instance variable\n * registerRetry for registration retry cases.\n *\n */\n private setRegRetry(value: boolean) {\n this.registerRetry = value;\n }\n\n /**\n * Restores the deviceInfo object in callingClient when receiving a 403 with error code 101.\n *\n */\n private getExistingDevice(restoreData: IDeviceInfo) {\n if (restoreData.devices && restoreData.devices.length > 0) {\n this.deviceInfo = {\n userId: restoreData.userId,\n device: restoreData.devices[0],\n keepaliveInterval: DEFAULT_KEEPALIVE_INTERVAL,\n rehomingIntervalMax: DEFAULT_REHOMING_INTERVAL_MAX,\n rehomingIntervalMin: DEFAULT_REHOMING_INTERVAL_MIN,\n };\n\n const stringToReplace = `${DEVICES_ENDPOINT_RESOURCE}/${restoreData.devices[0].deviceId}`;\n\n const uri = restoreData.devices[0].uri.replace(stringToReplace, '');\n this.setActiveMobiusUrl(uri);\n this.registrationStatus = RegistrationStatus.ACTIVE;\n\n return true;\n }\n\n return false;\n }\n\n /**\n * Invoked to re-register in cases when the registration\n * is lost due to some failure.\n * If there are active calls, it will only mark reconnectPending\n * as true and then retry will happen when this method gets\n * invoked again on receiving all calls cleared event from\n * callManager.\n *\n */\n public async reconnectOnFailure(caller: string) {\n this.reconnectPending = false;\n if (!this.isDeviceRegistered()) {\n if (Object.keys(this.callManager.getActiveCalls()).length === 0) {\n const abort = await this.restorePreviousRegistration(caller);\n\n if (!abort && !this.isDeviceRegistered()) {\n await this.restartRegistration(caller);\n }\n } else {\n this.reconnectPending = true;\n log.info('Active call(s) present, deferred reconnect till call cleanup.', {\n file: REGISTRATION_FILE,\n method: this.reconnectOnFailure.name,\n });\n }\n }\n }\n}\n\n/*\n */\nexport const createRegistration = (\n webex: WebexSDK,\n serviceData: ServiceData,\n mutex: Mutex,\n lineEmitter: LineEmitterCallback,\n logLevel: LOGGER\n): IRegistration => new Registration(webex, serviceData, mutex, lineEmitter, logLevel);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_uuid","require","_types","_common","_types2","_Metrics","_calling","_Logger","_interopRequireDefault","_SDKConnector","_types3","_constants","_types4","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","Registration","exports","webex","serviceData","mutex","lineEmitter","logLevel","_classCallCheck2","default","_defineProperty2","sdkConnector","SDKConnector","isCCFlow","indicator","ServiceIndicator","CONTACT_CENTER","getWebex","setWebex","userId","internal","device","registrationStatus","RegistrationStatus","IDLE","failback429RetryAttempts","log","setLogger","REGISTRATION_FILE","rehomingIntervalMin","DEFAULT_REHOMING_INTERVAL_MIN","rehomingIntervalMax","DEFAULT_REHOMING_INTERVAL_MAX","callManager","getCallManager","metricManager","getMetricManager","primaryMobiusUris","backupMobiusUris","_createClass2","key","getActiveMobiusUrl","activeMobiusUrl","setActiveMobiusUrl","url","info","concat","method","file","updateActiveMobius","setMobiusServers","_postKeepAlive","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","abrupt","request","uri","HTTP_METHODS","POST","headers","CISCO_DEVICE_URL","SPARK_USER_AGENT","CALLING_USER_AGENT","service","ALLOWED_SERVICES","MOBIUS","stop","postKeepAlive","_x","apply","arguments","_deleteRegistration","_callee2","deviceId","deviceUrl","_response","response","_callee2$","_context2","t0","fetch","t1","DEVICES_ENDPOINT_RESOURCE","t2","DELETE","t3","t4","t5","t6","credentials","getUserToken","t7","sent","t8","t9","WEBEX_WEB_CLIENT","uuid","t10","t11","t12","t13","t14","t15","warn","setStatus","INACTIVE","LINE_EVENTS","UNREGISTERED","json","deleteRegistration","_x2","_x3","_x4","_postRegistration","_callee3","deviceInfo","_callee3$","_context3","clientDeviceUri","body","postRegistration","_x5","_restorePreviousRegistration","_callee4","caller","abort","_callee4$","_context4","attemptRegistrationWithServers","restorePreviousRegistration","_x6","_scheduleFailback429Retry","_callee5","interval","_callee5$","_context5","REG_FAILBACK_429_MAX_RETRIES","clearFailbackTimer","FAILBACK_429_RETRY_UTIL","getRegRetryInterval","startFailbackTimer","isDeviceRegistered","restartRegistration","scheduleFailback429Retry","attempt","undefined","BASE_REG_RETRY_TIMER_VAL_IN_SEC","Math","pow","BASE_REG_TIMER_MFACTOR","floor","random","REG_RANDOM_T_FACTOR_UPPER_LIMIT","SEC_TO_MSEC_MFACTOR","_startFailoverTimer","_callee10","_this","timeElapsed","loggerContext","TIMER_THRESHOLD","excessVal","scheduledTime","_args10","_callee10$","_context10","startFailoverTimer","REG_TRY_BACKUP_TIMER_VAL_FOR_CC_IN_SEC","REG_TRY_BACKUP_TIMER_VAL_IN_SEC","_now","setTimeout","_callee7","_callee7$","_context7","runExclusive","_callee6","currentTime","_callee6$","_context6","_callee9","_callee9$","_context9","_callee8","_callee8$","_context8","emitFinalFailure","clientError","ERROR","failbackTimer","clearTimeout","isFailbackRequired","indexOf","getFailbackInterval","initiateFailback","intervalInMinutes","MINUTES_TO_SEC_MFACTOR","intervalInSeconds","_this2","_callee11","_callee11$","_context11","executeFailback","_executeFailback","_callee13","_this3","_callee13$","_context13","_callee12","abortNew","_callee12$","_context12","_keys","getActiveCalls","deregister","FAILBACK_UTIL","setIntervalValues","getDeviceInfo","ACTIVE","getStatus","_restartRegistration","_callee14","_callee14$","_context14","_x7","_handleConnectionRestoration","_callee16","retry","_this4","_callee16$","_context16","_callee15","_callee15$","_context15","handleConnectionRestoration","clearKeepaliveTimer","_x8","restoreRegistrationCallBack","_this5","_ref8","_callee17","restoreData","logContext","restore","finalError","_callee17$","_context17","isRegRetry","getExistingDevice","setRegRetry","_x9","_x10","_triggerRegistration","_callee18","_callee18$","_context18","triggerRegistration","_attemptRegistrationWithServers","_callee19","_this6","servers","_iterator","_step","_this$deviceInfo$devi","resp","error","_args19","_callee19$","_context19","CONNECTING","REGISTERED","setDeviceInfo","submitRegistrationMetric","METRIC_EVENT","REGISTRATION","REG_ACTION","REGISTER","METRIC_TYPE","BEHAVIORAL","startKeepaliveTimer","keepaliveInterval","handleRegistrationErrors","REGISTRATION_ERROR","statusCode","ERROR_CODE","TOO_MANY_REQUESTS","finish","_x11","_this7","keepAliveRetryCount","RETRY_COUNT_THRESHOLD","keepaliveTimer","setInterval","_callee21","_callee21$","_context21","_callee20","res","_callee20$","_context20","RECONNECTED","KEEPALIVE_FAILURE","reconnectOnFailure","RECONNECTING","clearInterval","isReconnectPending","reconnectPending","_deregister","_callee22","_this$deviceInfo$devi2","_this$deviceInfo$devi3","_callee22$","_context22","registerRetry","devices","DEFAULT_KEEPALIVE_INTERVAL","stringToReplace","replace","_reconnectOnFailure","_callee23","_callee23$","_context23","_x12","createRegistration"],"sources":["register.ts"],"sourcesContent":["import {v4 as uuid} from 'uuid';\nimport {Mutex} from 'async-mutex';\nimport {ERROR_CODE} from '../../Errors/types';\nimport {emitFinalFailure, handleRegistrationErrors} from '../../common';\n\nimport {IMetricManager, METRIC_EVENT, METRIC_TYPE, REG_ACTION} from '../../Metrics/types';\nimport {getMetricManager} from '../../Metrics';\nimport {ICallManager} from '../calling/types';\nimport {getCallManager} from '../calling';\nimport {LOGGER} from '../../Logger/types';\nimport log from '../../Logger';\nimport {IRegistration} from './types';\nimport SDKConnector from '../../SDKConnector';\nimport {\n ALLOWED_SERVICES,\n HTTP_METHODS,\n IDeviceInfo,\n RegistrationStatus,\n ServiceData,\n ServiceIndicator,\n WebexRequestPayload,\n} from '../../common/types';\nimport {ISDKConnector, WebexSDK} from '../../SDKConnector/types';\nimport {\n CALLING_USER_AGENT,\n CISCO_DEVICE_URL,\n DEVICES_ENDPOINT_RESOURCE,\n SPARK_USER_AGENT,\n WEBEX_WEB_CLIENT,\n BASE_REG_RETRY_TIMER_VAL_IN_SEC,\n BASE_REG_TIMER_MFACTOR,\n SEC_TO_MSEC_MFACTOR,\n REG_RANDOM_T_FACTOR_UPPER_LIMIT,\n REG_TRY_BACKUP_TIMER_VAL_IN_SEC,\n MINUTES_TO_SEC_MFACTOR,\n FAILBACK_429_RETRY_UTIL,\n REG_FAILBACK_429_MAX_RETRIES,\n FAILBACK_UTIL,\n REGISTRATION_FILE,\n DEFAULT_REHOMING_INTERVAL_MIN,\n DEFAULT_REHOMING_INTERVAL_MAX,\n DEFAULT_KEEPALIVE_INTERVAL,\n REG_TRY_BACKUP_TIMER_VAL_FOR_CC_IN_SEC,\n} from '../constants';\nimport {LINE_EVENTS, LineEmitterCallback} from '../line/types';\nimport {LineError} from '../../Errors/catalog/LineError';\n\n/**\n *\n */\nexport class Registration implements IRegistration {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private userId = '';\n\n private serviceData: ServiceData;\n\n private failback429RetryAttempts: number;\n private registrationStatus: RegistrationStatus;\n private failbackTimer?: NodeJS.Timer;\n private activeMobiusUrl!: string;\n\n private keepaliveTimer: NodeJS.Timer | undefined;\n private rehomingIntervalMin: number;\n\n private rehomingIntervalMax: number;\n private mutex: Mutex;\n private metricManager: IMetricManager;\n private lineEmitter: LineEmitterCallback;\n private callManager: ICallManager;\n private deviceInfo: IDeviceInfo = {};\n private primaryMobiusUris: string[];\n private backupMobiusUris: string[];\n private registerRetry = false;\n private reconnectPending = false;\n private isCCFlow = false;\n\n /**\n */\n constructor(\n webex: WebexSDK,\n serviceData: ServiceData,\n mutex: Mutex,\n lineEmitter: LineEmitterCallback,\n logLevel: LOGGER\n ) {\n this.sdkConnector = SDKConnector;\n this.serviceData = serviceData;\n this.isCCFlow = serviceData.indicator === ServiceIndicator.CONTACT_CENTER;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.webex = this.sdkConnector.getWebex();\n this.userId = this.webex.internal.device.userId;\n this.registrationStatus = RegistrationStatus.IDLE;\n this.failback429RetryAttempts = 0;\n log.setLogger(logLevel, REGISTRATION_FILE);\n this.rehomingIntervalMin = DEFAULT_REHOMING_INTERVAL_MIN;\n this.rehomingIntervalMax = DEFAULT_REHOMING_INTERVAL_MAX;\n this.mutex = mutex;\n this.callManager = getCallManager(this.webex, serviceData.indicator);\n this.metricManager = getMetricManager(this.webex, serviceData.indicator);\n this.lineEmitter = lineEmitter;\n\n this.primaryMobiusUris = [];\n this.backupMobiusUris = [];\n }\n\n public getActiveMobiusUrl(): string {\n return this.activeMobiusUrl;\n }\n\n public setActiveMobiusUrl(url: string) {\n log.info(`ActiveMobiusUrl: ${url}`, {method: 'setActiveMobiusUrl', file: REGISTRATION_FILE});\n this.activeMobiusUrl = url;\n this.callManager.updateActiveMobius(url);\n }\n\n public setMobiusServers(primaryMobiusUris: string[], backupMobiusUris: string[]) {\n this.primaryMobiusUris = primaryMobiusUris;\n this.backupMobiusUris = backupMobiusUris;\n }\n\n /**\n * Implementation of sending keepalive.\n *\n */\n private async postKeepAlive(url: string) {\n return <WebexRequestPayload>this.webex.request({\n uri: `${url}/status`,\n method: HTTP_METHODS.POST,\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\n /**\n * Implementation of delete device.\n *\n */\n private async deleteRegistration(url: string, deviceId: string, deviceUrl: string) {\n let response;\n try {\n response = await fetch(`${url}${DEVICES_ENDPOINT_RESOURCE}/${deviceId}`, {\n method: HTTP_METHODS.DELETE,\n headers: {\n [CISCO_DEVICE_URL]: deviceUrl,\n Authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${WEBEX_WEB_CLIENT}_${uuid()}`,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n });\n } catch (error) {\n log.warn(`Delete failed with Mobius`, {});\n }\n\n this.setStatus(RegistrationStatus.INACTIVE);\n this.lineEmitter(LINE_EVENTS.UNREGISTERED);\n\n return <WebexRequestPayload>response?.json();\n }\n\n /**\n * Implementation of POST request for device registration.\n *\n */\n private async postRegistration(url: string) {\n const deviceInfo = {\n userId: this.userId,\n clientDeviceUri: this.webex.internal.device.url,\n serviceData: this.serviceData,\n };\n\n return <WebexRequestPayload>this.webex.request({\n uri: `${url}device`,\n method: HTTP_METHODS.POST,\n headers: {\n [CISCO_DEVICE_URL]: deviceInfo.clientDeviceUri,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n body: deviceInfo,\n service: ALLOWED_SERVICES.MOBIUS,\n });\n }\n\n /**\n * Re-attempts registration with the mobius url it was last registered\n * to, that mobius url is expected to be updated already in this.activeMobiusUrl.\n */\n private async restorePreviousRegistration(caller: string): Promise<boolean> {\n let abort = false;\n\n if (this.activeMobiusUrl) {\n abort = await this.attemptRegistrationWithServers(caller, [this.activeMobiusUrl]);\n }\n\n return abort;\n }\n\n /**\n * When a failback request is rejected with 429, it means the\n * request did not even land on primary mobius to know if it\n * can handle this device registration now, in such cases this\n * method is called to retry sooner than the rehoming timer value.\n */\n private async scheduleFailback429Retry() {\n if (this.failback429RetryAttempts >= REG_FAILBACK_429_MAX_RETRIES) {\n return;\n }\n this.clearFailbackTimer();\n this.failback429RetryAttempts += 1;\n log.log(`Received 429 while rehoming, 429 retry count : ${this.failback429RetryAttempts}`, {\n file: REGISTRATION_FILE,\n method: FAILBACK_429_RETRY_UTIL,\n });\n const interval = this.getRegRetryInterval(this.failback429RetryAttempts);\n\n this.startFailbackTimer(interval);\n const abort = await this.restorePreviousRegistration(FAILBACK_429_RETRY_UTIL);\n\n if (!abort && !this.isDeviceRegistered()) {\n await this.restartRegistration(FAILBACK_429_RETRY_UTIL);\n }\n }\n\n /**\n * Calculates and returns a random interval value using input argument\n * attempt as the variable factor.\n *\n * attempted already.\n */\n private getRegRetryInterval(attempt = 1): number {\n return (\n BASE_REG_RETRY_TIMER_VAL_IN_SEC +\n BASE_REG_TIMER_MFACTOR ** attempt +\n Math.floor(\n (Math.random() * (REG_RANDOM_T_FACTOR_UPPER_LIMIT - SEC_TO_MSEC_MFACTOR + 1) +\n SEC_TO_MSEC_MFACTOR) /\n SEC_TO_MSEC_MFACTOR\n )\n );\n }\n\n /**\n * Schedules registration retry with primary mobius servers at a random\n * interval calculated based on the number of times registration retry is already done\n * Once the time taken since the beginning of retry attempt exceeds the\n * retry threshold, it switches over to backup mobius servers.\n *\n */\n private async startFailoverTimer(attempt = 1, timeElapsed = 0) {\n const loggerContext = {\n file: REGISTRATION_FILE,\n method: this.startFailoverTimer.name,\n };\n\n let interval = this.getRegRetryInterval(attempt);\n\n const TIMER_THRESHOLD = this.isCCFlow\n ? REG_TRY_BACKUP_TIMER_VAL_FOR_CC_IN_SEC\n : REG_TRY_BACKUP_TIMER_VAL_IN_SEC;\n\n if (timeElapsed + interval > TIMER_THRESHOLD) {\n const excessVal = timeElapsed + interval - TIMER_THRESHOLD;\n\n interval -= excessVal;\n }\n\n let abort;\n\n if (interval > BASE_REG_RETRY_TIMER_VAL_IN_SEC) {\n const scheduledTime = Math.floor(Date.now() / 1000);\n\n setTimeout(async () => {\n await this.mutex.runExclusive(async () => {\n abort = await this.attemptRegistrationWithServers(this.startFailoverTimer.name);\n const currentTime = Math.floor(Date.now() / 1000);\n\n if (!abort && !this.isDeviceRegistered()) {\n await this.startFailoverTimer(attempt + 1, timeElapsed + (currentTime - scheduledTime));\n }\n });\n }, interval * SEC_TO_MSEC_MFACTOR);\n log.log(\n `Scheduled retry with primary in ${interval} seconds, number of attempts : ${attempt}`,\n loggerContext\n );\n } else if (this.backupMobiusUris.length) {\n log.log('Failing over to backup servers.', loggerContext);\n abort = await this.attemptRegistrationWithServers(\n this.startFailoverTimer.name,\n this.backupMobiusUris\n );\n if (!abort && !this.isDeviceRegistered()) {\n interval = this.getRegRetryInterval();\n setTimeout(async () => {\n await this.mutex.runExclusive(async () => {\n abort = await this.attemptRegistrationWithServers(\n this.startFailoverTimer.name,\n this.backupMobiusUris\n );\n if (!abort && !this.isDeviceRegistered()) {\n emitFinalFailure((clientError: LineError) => {\n this.lineEmitter(LINE_EVENTS.ERROR, undefined, clientError);\n }, loggerContext);\n }\n });\n }, interval * SEC_TO_MSEC_MFACTOR);\n log.log(`Scheduled retry with backup servers in ${interval} seconds.`, loggerContext);\n }\n } else {\n emitFinalFailure((clientError: LineError) => {\n this.lineEmitter(LINE_EVENTS.ERROR, undefined, clientError);\n }, loggerContext);\n }\n }\n\n /**\n * Clears the failback timer if running.\n */\n private clearFailbackTimer() {\n if (this.failbackTimer) {\n clearTimeout(this.failbackTimer);\n this.failbackTimer = undefined;\n }\n }\n\n /**\n * Returns true if device is registered with a backup mobius.\n */\n private isFailbackRequired(): boolean {\n return this.isDeviceRegistered() && this.primaryMobiusUris.indexOf(this.activeMobiusUrl) === -1;\n }\n\n /**\n * Calculates and returns a random value between rehomingIntervalMin and\n * rehomingIntervalMax.\n */\n private getFailbackInterval(): number {\n return Math.floor(\n Math.random() * (this.rehomingIntervalMax - this.rehomingIntervalMin + 1) +\n this.rehomingIntervalMin\n );\n }\n\n /**\n * Starts failback timer to move to primary mobius if device\n * is registered with a backup mobius.\n */\n private initiateFailback() {\n if (this.isFailbackRequired()) {\n if (!this.failbackTimer) {\n this.failback429RetryAttempts = 0;\n const intervalInMinutes = this.getFailbackInterval();\n\n this.startFailbackTimer(intervalInMinutes * MINUTES_TO_SEC_MFACTOR);\n }\n } else {\n this.failback429RetryAttempts = 0;\n this.clearFailbackTimer();\n }\n }\n\n /**\n * Starts failback timer with the interval value received.\n *\n */\n private startFailbackTimer(intervalInSeconds: number) {\n this.failbackTimer = setTimeout(\n async () => this.executeFailback(),\n intervalInSeconds * SEC_TO_MSEC_MFACTOR\n );\n log.log(`Failback scheduled after ${intervalInSeconds} seconds.`, {\n file: REGISTRATION_FILE,\n method: this.startFailbackTimer.name,\n });\n }\n\n /**\n * Core logic for the failback processing, scheduled and executed\n * at failback timer expiry.\n */\n private async executeFailback() {\n await this.mutex.runExclusive(async () => {\n if (this.isFailbackRequired()) {\n if (Object.keys(this.callManager.getActiveCalls()).length === 0) {\n log.info(`Attempting failback to primary.`, {\n file: REGISTRATION_FILE,\n method: this.executeFailback.name,\n });\n await this.deregister();\n const abort = await this.attemptRegistrationWithServers(FAILBACK_UTIL);\n if (!abort && !this.isDeviceRegistered()) {\n const abortNew = await this.restorePreviousRegistration(FAILBACK_UTIL);\n\n if (abortNew) {\n this.clearFailbackTimer();\n\n return;\n }\n\n if (!this.isDeviceRegistered()) {\n await this.restartRegistration(this.executeFailback.name);\n } else {\n this.failbackTimer = undefined;\n this.initiateFailback();\n }\n }\n } else {\n log.info('Active calls present, deferring failback to next cycle.', {\n file: REGISTRATION_FILE,\n method: this.executeFailback.name,\n });\n this.failbackTimer = undefined;\n this.initiateFailback();\n }\n }\n });\n }\n\n /**\n * Updates rehomingIntervalMin and rehomingIntervalMax values\n * if received in registration response from a primary mobius\n * server.\n *\n */\n private setIntervalValues(deviceInfo: IDeviceInfo) {\n if (this.primaryMobiusUris.indexOf(this.activeMobiusUrl) !== -1) {\n this.rehomingIntervalMin = deviceInfo?.rehomingIntervalMin\n ? deviceInfo.rehomingIntervalMin\n : DEFAULT_REHOMING_INTERVAL_MIN;\n this.rehomingIntervalMax = deviceInfo?.rehomingIntervalMax\n ? deviceInfo.rehomingIntervalMax\n : DEFAULT_REHOMING_INTERVAL_MAX;\n }\n }\n\n /**\n * Retrieves information about the device as {@link IDeviceInfo}.\n *\n */\n public getDeviceInfo(): IDeviceInfo {\n return this.deviceInfo;\n }\n\n /**\n * Checks if the device is currently registered.\n *\n * by checking if isRegistered state is set to\n * ACTIVE, else false.\n */\n public isDeviceRegistered(): boolean {\n return this.registrationStatus === RegistrationStatus.ACTIVE;\n }\n\n public getStatus(): RegistrationStatus {\n return this.registrationStatus;\n }\n\n public setStatus(value: RegistrationStatus) {\n this.registrationStatus = value;\n }\n\n /**\n * Start fresh registration cycle with the mobius\n * server list already present.\n *\n */\n private async restartRegistration(caller: string) {\n /*\n * Cancel any failback timer running\n * and start fresh registration attempt with retry as true.\n */\n this.clearFailbackTimer();\n this.failback429RetryAttempts = 0;\n const abort = await this.attemptRegistrationWithServers(caller, this.primaryMobiusUris);\n\n if (!abort && !this.isDeviceRegistered()) {\n await this.startFailoverTimer();\n }\n }\n\n /**\n * Restores the connection and attempts refreshing existing registration with server.\n * Allows retry if not restored in the first attempt.\n *\n */\n public async handleConnectionRestoration(retry: boolean): Promise<boolean> {\n await this.mutex.runExclusive(async () => {\n /* Check retry once again to see if another timer thread has not finished the job already. */\n if (retry) {\n log.info('Mercury connection is up again, re-registering with Webex Calling if needed', {\n file: REGISTRATION_FILE,\n method: this.handleConnectionRestoration.name,\n });\n this.clearKeepaliveTimer();\n if (this.isDeviceRegistered()) {\n // eslint-disable-next-line no-await-in-loop\n await this.deregister();\n }\n\n /*\n * Do not attempt registration if mobius url is not set in this.activeMobiusUrl\n * as that'd mean initial registration itself is not finished yet, let\n * failover timer handle the registration in that case.\n */\n if (this.activeMobiusUrl) {\n /*\n * When restoring connectivity, register with same url first\n * where it was registered last even if it was a backup url,\n * because failback timer may already be running to register\n * it back to primary.\n */\n const abort = await this.restorePreviousRegistration(\n this.handleConnectionRestoration.name\n );\n\n if (!abort && !this.isDeviceRegistered()) {\n await this.restartRegistration(this.handleConnectionRestoration.name);\n }\n }\n retry = false;\n }\n });\n\n return retry;\n }\n\n /**\n * Callback function for restoring registration in case of failure during initial registration\n * due to device registration already exists.\n *\n */\n private restoreRegistrationCallBack() {\n return async (restoreData: IDeviceInfo, caller: string) => {\n const logContext = {file: REGISTRATION_FILE, method: caller};\n if (!this.isRegRetry()) {\n log.info('Registration restoration in progress.', logContext);\n const restore = this.getExistingDevice(restoreData);\n\n if (restore) {\n this.setRegRetry(true);\n await this.deregister();\n const finalError = await this.restorePreviousRegistration(caller);\n this.setRegRetry(false);\n if (this.isDeviceRegistered()) {\n log.info('Registration restored successfully.', logContext);\n }\n\n return finalError;\n }\n this.lineEmitter(LINE_EVENTS.UNREGISTERED);\n } else {\n this.lineEmitter(LINE_EVENTS.UNREGISTERED);\n }\n\n return false;\n };\n }\n\n /**\n * Triggers the registration with the given list of Mobius servers\n * Registration is attempted with primary and backup until it succeeds or the list is exhausted\n */\n public async triggerRegistration() {\n if (this.primaryMobiusUris.length > 0) {\n const abort = await this.attemptRegistrationWithServers(\n this.triggerRegistration.name,\n this.primaryMobiusUris\n );\n\n if (!this.isDeviceRegistered() && !abort) {\n await this.startFailoverTimer();\n }\n }\n }\n\n /**\n * Attempts registration with the server list received in\n * argument one by one until registration either succeeds with\n * one or all of them are tried.\n *\n * attempt has hit a final error and a retry should not be scheduled\n * else false.\n */\n private async attemptRegistrationWithServers(\n caller: string,\n servers: string[] = this.primaryMobiusUris\n ): Promise<boolean> {\n let abort = false;\n\n if (this.isDeviceRegistered()) {\n log.log(`[${caller}] : Device already registered with : ${this.activeMobiusUrl}`, {\n file: REGISTRATION_FILE,\n method: this.attemptRegistrationWithServers.name,\n });\n\n return abort;\n }\n for (const url of servers) {\n try {\n abort = false;\n this.registrationStatus = RegistrationStatus.INACTIVE;\n this.lineEmitter(LINE_EVENTS.CONNECTING);\n log.log(`[${caller}] : Mobius url to contact: ${url}`, {\n file: REGISTRATION_FILE,\n method: this.attemptRegistrationWithServers.name,\n });\n // eslint-disable-next-line no-await-in-loop\n const resp = await this.postRegistration(url);\n this.deviceInfo = resp.body as IDeviceInfo;\n this.registrationStatus = RegistrationStatus.ACTIVE;\n this.lineEmitter(LINE_EVENTS.REGISTERED, resp.body as IDeviceInfo);\n this.setActiveMobiusUrl(url);\n this.setIntervalValues(this.deviceInfo);\n this.metricManager.setDeviceInfo(this.deviceInfo);\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n undefined\n );\n this.startKeepaliveTimer(\n this.deviceInfo.device?.uri as string,\n this.deviceInfo.keepaliveInterval as number\n );\n this.initiateFailback();\n break;\n } catch (err: unknown) {\n const body = err as WebexRequestPayload;\n\n // eslint-disable-next-line no-await-in-loop, @typescript-eslint/no-unused-vars\n abort = await handleRegistrationErrors(\n body,\n (clientError, finalError) => {\n if (finalError) {\n this.lineEmitter(LINE_EVENTS.ERROR, undefined, clientError);\n } else {\n this.lineEmitter(LINE_EVENTS.UNREGISTERED);\n }\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n },\n {method: this.attemptRegistrationWithServers.name, file: REGISTRATION_FILE},\n this.restoreRegistrationCallBack()\n );\n if (this.registrationStatus === RegistrationStatus.ACTIVE) {\n log.info(\n `[${caller}] : Device is already restored, active mobius url: ${this.activeMobiusUrl}`,\n {\n file: REGISTRATION_FILE,\n method: this.attemptRegistrationWithServers.name,\n }\n );\n break;\n }\n if (abort) {\n this.setStatus(RegistrationStatus.INACTIVE);\n break;\n } else if (caller === this.executeFailback.name) {\n const error = body.statusCode;\n\n if (error === ERROR_CODE.TOO_MANY_REQUESTS) {\n // eslint-disable-next-line no-await-in-loop\n await this.scheduleFailback429Retry();\n abort = true;\n break;\n }\n }\n }\n }\n\n return abort;\n }\n\n /**\n * This method sets up a timer to periodically send keep-alive requests to maintain a connection.\n * It handles retries, error handling, and re-registration attempts based on the response, ensuring continuous connectivity with the server.\n */\n private startKeepaliveTimer(url: string, interval: number) {\n let keepAliveRetryCount = 0;\n this.clearKeepaliveTimer();\n const RETRY_COUNT_THRESHOLD = this.isCCFlow ? 4 : 5;\n\n this.keepaliveTimer = setInterval(async () => {\n const logContext = {\n file: REGISTRATION_FILE,\n method: this.startKeepaliveTimer.name,\n };\n await this.mutex.runExclusive(async () => {\n if (this.isDeviceRegistered() && keepAliveRetryCount < RETRY_COUNT_THRESHOLD) {\n try {\n const res = await this.postKeepAlive(url);\n log.info(`Sent Keepalive, status: ${res.statusCode}`, logContext);\n if (keepAliveRetryCount > 0) {\n this.lineEmitter(LINE_EVENTS.RECONNECTED);\n }\n keepAliveRetryCount = 0;\n } catch (err: unknown) {\n keepAliveRetryCount += 1;\n const error = <WebexRequestPayload>err;\n\n log.warn(\n `Keep-alive missed ${keepAliveRetryCount} times. Status -> ${error.statusCode} `,\n logContext\n );\n\n const abort = await handleRegistrationErrors(\n error,\n (clientError, finalError) => {\n if (finalError) {\n this.lineEmitter(LINE_EVENTS.ERROR, undefined, clientError);\n }\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION,\n REG_ACTION.KEEPALIVE_FAILURE,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n },\n {method: this.startKeepaliveTimer.name, file: REGISTRATION_FILE}\n );\n\n if (abort || keepAliveRetryCount >= RETRY_COUNT_THRESHOLD) {\n this.setStatus(RegistrationStatus.INACTIVE);\n this.clearKeepaliveTimer();\n this.clearFailbackTimer();\n this.lineEmitter(LINE_EVENTS.UNREGISTERED);\n\n if (!abort) {\n /* In case of non-final error, re-attempt registration */\n await this.reconnectOnFailure(this.startKeepaliveTimer.name);\n }\n } else {\n this.lineEmitter(LINE_EVENTS.RECONNECTING);\n }\n }\n }\n });\n }, interval * 1000);\n }\n\n /**\n * Clears the keepalive timer if running.\n */\n public clearKeepaliveTimer() {\n if (this.keepaliveTimer) {\n clearInterval(this.keepaliveTimer);\n this.keepaliveTimer = undefined;\n }\n }\n\n public isReconnectPending(): boolean {\n return this.reconnectPending;\n }\n\n public async deregister() {\n try {\n await this.deleteRegistration(\n this.activeMobiusUrl as string,\n this.deviceInfo.device?.deviceId as string,\n this.deviceInfo.device?.clientDeviceUri as string\n );\n } catch (err) {\n log.warn(`Delete failed with Mobius`, {});\n }\n\n this.clearKeepaliveTimer();\n this.setStatus(RegistrationStatus.INACTIVE);\n }\n\n /**\n * Indicates whether the calling client is in a mode\n * to retry registration.\n */\n private isRegRetry(): boolean {\n return this.registerRetry;\n }\n\n /**\n * Sets the received value in instance variable\n * registerRetry for registration retry cases.\n *\n */\n private setRegRetry(value: boolean) {\n this.registerRetry = value;\n }\n\n /**\n * Restores the deviceInfo object in callingClient when receiving a 403 with error code 101.\n *\n */\n private getExistingDevice(restoreData: IDeviceInfo) {\n if (restoreData.devices && restoreData.devices.length > 0) {\n this.deviceInfo = {\n userId: restoreData.userId,\n device: restoreData.devices[0],\n keepaliveInterval: DEFAULT_KEEPALIVE_INTERVAL,\n rehomingIntervalMax: DEFAULT_REHOMING_INTERVAL_MAX,\n rehomingIntervalMin: DEFAULT_REHOMING_INTERVAL_MIN,\n };\n\n const stringToReplace = `${DEVICES_ENDPOINT_RESOURCE}/${restoreData.devices[0].deviceId}`;\n\n const uri = restoreData.devices[0].uri.replace(stringToReplace, '');\n this.setActiveMobiusUrl(uri);\n this.registrationStatus = RegistrationStatus.ACTIVE;\n\n return true;\n }\n\n return false;\n }\n\n /**\n * Invoked to re-register in cases when the registration\n * is lost due to some failure.\n * If there are active calls, it will only mark reconnectPending\n * as true and then retry will happen when this method gets\n * invoked again on receiving all calls cleared event from\n * callManager.\n *\n */\n public async reconnectOnFailure(caller: string) {\n this.reconnectPending = false;\n if (!this.isDeviceRegistered()) {\n if (Object.keys(this.callManager.getActiveCalls()).length === 0) {\n const abort = await this.restorePreviousRegistration(caller);\n\n if (!abort && !this.isDeviceRegistered()) {\n await this.restartRegistration(caller);\n }\n } else {\n this.reconnectPending = true;\n log.info('Active call(s) present, deferred reconnect till call cleanup.', {\n file: REGISTRATION_FILE,\n method: this.reconnectOnFailure.name,\n });\n }\n }\n }\n}\n\n/*\n */\nexport const createRegistration = (\n webex: WebexSDK,\n serviceData: ServiceData,\n mutex: Mutex,\n lineEmitter: LineEmitterCallback,\n logLevel: LOGGER\n): IRegistration => new Registration(webex, serviceData, mutex, lineEmitter, logLevel);\n"],"mappings":"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"}
|