@webex/calling 3.11.0 → 3.12.0-llmrefactor.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 +596 -0
- package/dist/CallHistory/CallHistory.js.map +1 -0
- package/dist/CallHistory/CallHistory.test.js +916 -0
- package/dist/CallHistory/CallHistory.test.js.map +1 -0
- package/dist/CallHistory/callHistoryFixtures.js +650 -0
- package/dist/CallHistory/callHistoryFixtures.js.map +1 -0
- package/dist/CallHistory/constants.js +38 -0
- package/dist/CallHistory/constants.js.map +1 -0
- package/dist/CallHistory/types.js +7 -0
- package/dist/CallHistory/types.js.map +1 -0
- package/dist/CallRecording/CallRecording.js +160 -0
- package/dist/CallRecording/CallRecording.js.map +1 -0
- package/dist/CallRecording/CallRecording.test.js +257 -0
- package/dist/CallRecording/CallRecording.test.js.map +1 -0
- package/dist/CallRecording/WxcCallRecordingConnector.js +577 -0
- package/dist/CallRecording/WxcCallRecordingConnector.js.map +1 -0
- package/dist/CallRecording/WxcCallRecordingConnector.test.js +652 -0
- package/dist/CallRecording/WxcCallRecordingConnector.test.js.map +1 -0
- package/dist/CallRecording/callRecordingFixtures.js +235 -0
- package/dist/CallRecording/callRecordingFixtures.js.map +1 -0
- package/dist/CallRecording/constants.js +50 -0
- package/dist/CallRecording/constants.js.map +1 -0
- package/dist/CallRecording/types.js +137 -0
- package/dist/CallRecording/types.js.map +1 -0
- package/dist/CallRecording/utils.js +42 -0
- package/dist/CallRecording/utils.js.map +1 -0
- package/dist/CallRecording/utils.test.js +97 -0
- package/dist/CallRecording/utils.test.js.map +1 -0
- package/dist/CallSettings/CallSettings.js +311 -0
- package/dist/CallSettings/CallSettings.js.map +1 -0
- package/dist/CallSettings/CallSettings.test.js +122 -0
- package/dist/CallSettings/CallSettings.test.js.map +1 -0
- package/dist/CallSettings/UcmBackendConnector.js +308 -0
- package/dist/CallSettings/UcmBackendConnector.js.map +1 -0
- package/dist/CallSettings/UcmBackendConnector.test.js +411 -0
- package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -0
- package/dist/CallSettings/WxCallBackendConnector.js +597 -0
- package/dist/CallSettings/WxCallBackendConnector.js.map +1 -0
- package/dist/CallSettings/WxCallBackendConnector.test.js +904 -0
- package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -0
- package/dist/CallSettings/constants.js +31 -0
- package/dist/CallSettings/constants.js.map +1 -0
- package/dist/CallSettings/testFixtures.js +68 -0
- package/dist/CallSettings/testFixtures.js.map +1 -0
- package/dist/CallSettings/types.js +7 -0
- package/dist/CallSettings/types.js.map +1 -0
- package/dist/CallingClient/CallingClient.js +1349 -0
- package/dist/CallingClient/CallingClient.js.map +1 -0
- package/dist/CallingClient/CallingClient.test.js +1625 -0
- package/dist/CallingClient/CallingClient.test.js.map +1 -0
- package/dist/CallingClient/callRecordFixtures.js +101 -0
- package/dist/CallingClient/callRecordFixtures.js.map +1 -0
- package/dist/CallingClient/calling/CallerId/index.js +275 -0
- package/dist/CallingClient/calling/CallerId/index.js.map +1 -0
- package/dist/CallingClient/calling/CallerId/index.test.js +275 -0
- package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -0
- package/dist/CallingClient/calling/CallerId/types.js +7 -0
- package/dist/CallingClient/calling/CallerId/types.js.map +1 -0
- package/dist/CallingClient/calling/call.js +3666 -0
- package/dist/CallingClient/calling/call.js.map +1 -0
- package/dist/CallingClient/calling/call.test.js +3970 -0
- package/dist/CallingClient/calling/call.test.js.map +1 -0
- package/dist/CallingClient/calling/callManager.js +531 -0
- package/dist/CallingClient/calling/callManager.js.map +1 -0
- package/dist/CallingClient/calling/callManager.test.js +881 -0
- package/dist/CallingClient/calling/callManager.test.js.map +1 -0
- package/dist/CallingClient/calling/index.js +30 -0
- package/dist/CallingClient/calling/index.js.map +1 -0
- package/dist/CallingClient/calling/types.js +79 -0
- package/dist/CallingClient/calling/types.js.map +1 -0
- package/dist/CallingClient/callingClientFixtures.js +143 -0
- package/dist/CallingClient/callingClientFixtures.js.map +1 -0
- package/dist/CallingClient/constants.js +272 -0
- package/dist/CallingClient/constants.js.map +1 -0
- package/dist/CallingClient/line/index.js +339 -0
- package/dist/CallingClient/line/index.js.map +1 -0
- package/dist/CallingClient/line/line.test.js +379 -0
- package/dist/CallingClient/line/line.test.js.map +1 -0
- package/dist/CallingClient/line/types.js +21 -0
- package/dist/CallingClient/line/types.js.map +1 -0
- package/dist/CallingClient/registration/index.js +19 -0
- package/dist/CallingClient/registration/index.js.map +1 -0
- package/dist/CallingClient/registration/register.js +2079 -0
- package/dist/CallingClient/registration/register.js.map +1 -0
- package/dist/CallingClient/registration/register.test.js +2476 -0
- package/dist/CallingClient/registration/register.test.js.map +1 -0
- package/dist/CallingClient/registration/registerFixtures.js +36 -0
- package/dist/CallingClient/registration/registerFixtures.js.map +1 -0
- package/dist/CallingClient/registration/types.js +33 -0
- package/dist/CallingClient/registration/types.js.map +1 -0
- package/dist/CallingClient/registration/webWorker.js +67 -0
- package/dist/CallingClient/registration/webWorker.js.map +1 -0
- package/dist/CallingClient/registration/webWorker.test.js +189 -0
- package/dist/CallingClient/registration/webWorker.test.js.map +1 -0
- package/dist/CallingClient/registration/webWorkerStr.js +15 -0
- package/dist/CallingClient/registration/webWorkerStr.js.map +1 -0
- package/dist/CallingClient/types.js +14 -0
- package/dist/CallingClient/types.js.map +1 -0
- package/dist/CallingClient/utils/constants.js +58 -0
- package/dist/CallingClient/utils/constants.js.map +1 -0
- package/dist/CallingClient/utils/index.js +63 -0
- package/dist/CallingClient/utils/index.js.map +1 -0
- package/dist/CallingClient/utils/mobiusSocketMapper.js +122 -0
- package/dist/CallingClient/utils/mobiusSocketMapper.js.map +1 -0
- package/dist/CallingClient/utils/mobiusSocketMapper.test.js +221 -0
- package/dist/CallingClient/utils/mobiusSocketMapper.test.js.map +1 -0
- package/dist/CallingClient/utils/request.js +435 -0
- package/dist/CallingClient/utils/request.js.map +1 -0
- package/dist/CallingClient/utils/request.test.js +999 -0
- package/dist/CallingClient/utils/request.test.js.map +1 -0
- package/dist/CallingClient/utils/types.js +7 -0
- package/dist/CallingClient/utils/types.js.map +1 -0
- package/dist/CallingClient/utils/wsFeatureFlag.js +70 -0
- package/dist/CallingClient/utils/wsFeatureFlag.js.map +1 -0
- package/dist/CallingClient/utils/wsFeatureFlag.test.js +139 -0
- package/dist/CallingClient/utils/wsFeatureFlag.test.js.map +1 -0
- package/dist/CallingClient/windowsChromiumIceWarmupUtils.js +142 -0
- package/dist/CallingClient/windowsChromiumIceWarmupUtils.js.map +1 -0
- package/dist/Contacts/ContactsClient.js +1208 -0
- package/dist/Contacts/ContactsClient.js.map +1 -0
- package/dist/Contacts/ContactsClient.test.js +999 -0
- package/dist/Contacts/ContactsClient.test.js.map +1 -0
- package/dist/Contacts/constants.js +40 -0
- package/dist/Contacts/constants.js.map +1 -0
- package/dist/Contacts/contactFixtures.js +430 -0
- package/dist/Contacts/contactFixtures.js.map +1 -0
- package/dist/Contacts/types.js +43 -0
- package/dist/Contacts/types.js.map +1 -0
- package/dist/Errors/catalog/CallError.js +89 -0
- package/dist/Errors/catalog/CallError.js.map +1 -0
- package/dist/Errors/catalog/CallingDeviceError.js +83 -0
- package/dist/Errors/catalog/CallingDeviceError.js.map +1 -0
- package/dist/Errors/catalog/ExtendedError.js +42 -0
- package/dist/Errors/catalog/ExtendedError.js.map +1 -0
- package/dist/Errors/catalog/LineError.js +85 -0
- package/dist/Errors/catalog/LineError.js.map +1 -0
- package/dist/Errors/index.js +28 -0
- package/dist/Errors/index.js.map +1 -0
- package/dist/Errors/types.js +61 -0
- package/dist/Errors/types.js.map +1 -0
- package/dist/Events/impl/index.js +79 -0
- package/dist/Events/impl/index.js.map +1 -0
- package/dist/Events/types.js +134 -0
- package/dist/Events/types.js.map +1 -0
- package/dist/Logger/index.js +228 -0
- package/dist/Logger/index.js.map +1 -0
- package/dist/Logger/index.test.js +87 -0
- package/dist/Logger/index.test.js.map +1 -0
- package/dist/Logger/types.js +34 -0
- package/dist/Logger/types.js.map +1 -0
- package/dist/Metrics/index.js +595 -0
- package/dist/Metrics/index.js.map +1 -0
- package/dist/Metrics/index.test.js +819 -0
- package/dist/Metrics/index.test.js.map +1 -0
- package/dist/Metrics/types.js +82 -0
- package/dist/Metrics/types.js.map +1 -0
- package/dist/SDKConnector/index.js +102 -0
- package/dist/SDKConnector/index.js.map +1 -0
- package/dist/SDKConnector/index.test.js +9 -0
- package/dist/SDKConnector/index.test.js.map +1 -0
- package/dist/SDKConnector/types.js +7 -0
- package/dist/SDKConnector/types.js.map +1 -0
- package/dist/SDKConnector/utils.js +39 -0
- package/dist/SDKConnector/utils.js.map +1 -0
- package/dist/SDKConnector/utils.test.js +9 -0
- package/dist/SDKConnector/utils.test.js.map +1 -0
- package/dist/Voicemail/BroadworksBackendConnector.js +699 -0
- package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -0
- package/dist/Voicemail/BroadworksBackendConnector.test.js +820 -0
- package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -0
- package/dist/Voicemail/UcmBackendConnector.js +628 -0
- package/dist/Voicemail/UcmBackendConnector.js.map +1 -0
- package/dist/Voicemail/UcmBackendConnector.test.js +738 -0
- package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -0
- package/dist/Voicemail/Voicemail.js +472 -0
- package/dist/Voicemail/Voicemail.js.map +1 -0
- package/dist/Voicemail/Voicemail.test.js +391 -0
- package/dist/Voicemail/Voicemail.test.js.map +1 -0
- package/dist/Voicemail/WxCallBackendConnector.js +657 -0
- package/dist/Voicemail/WxCallBackendConnector.js.map +1 -0
- package/dist/Voicemail/WxCallBackendConnector.test.js +1225 -0
- package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -0
- package/dist/Voicemail/constants.js +61 -0
- package/dist/Voicemail/constants.js.map +1 -0
- package/dist/Voicemail/types.js +7 -0
- package/dist/Voicemail/types.js.map +1 -0
- package/dist/Voicemail/voicemailFixture.js +524 -0
- package/dist/Voicemail/voicemailFixture.js.map +1 -0
- package/dist/api.js +213 -0
- package/dist/api.js.map +1 -0
- package/dist/common/Utils.js +1624 -0
- package/dist/common/Utils.js.map +1 -0
- package/dist/common/Utils.test.js +2225 -0
- package/dist/common/Utils.test.js.map +1 -0
- package/dist/common/constants.js +62 -0
- package/dist/common/constants.js.map +1 -0
- package/dist/common/index.js +19 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/testUtil.js +988 -0
- package/dist/common/testUtil.js.map +1 -0
- package/dist/common/types.js +78 -0
- package/dist/common/types.js.map +1 -0
- package/dist/index.js +452 -0
- package/dist/index.js.map +1 -0
- package/dist/mobius-socket/config.js +24 -0
- package/dist/mobius-socket/config.js.map +1 -0
- package/dist/mobius-socket/errors.js +143 -0
- package/dist/mobius-socket/errors.js.map +1 -0
- package/dist/mobius-socket/errors.test.js +20 -0
- package/dist/mobius-socket/errors.test.js.map +1 -0
- package/dist/mobius-socket/index.js +57 -0
- package/dist/mobius-socket/index.js.map +1 -0
- package/dist/mobius-socket/mobius-socket-events.test.js +492 -0
- package/dist/mobius-socket/mobius-socket-events.test.js.map +1 -0
- package/dist/mobius-socket/mobius-socket.js +849 -0
- package/dist/mobius-socket/mobius-socket.js.map +1 -0
- package/dist/mobius-socket/mobius-socket.test.js +1898 -0
- package/dist/mobius-socket/mobius-socket.test.js.map +1 -0
- package/dist/mobius-socket/socket/constants.js +55 -0
- package/dist/mobius-socket/socket/constants.js.map +1 -0
- package/dist/mobius-socket/socket/index.js +15 -0
- package/dist/mobius-socket/socket/index.js.map +1 -0
- package/dist/mobius-socket/socket/socket-base.js +604 -0
- package/dist/mobius-socket/socket/socket-base.js.map +1 -0
- package/dist/mobius-socket/socket/socket.js +19 -0
- package/dist/mobius-socket/socket/socket.js.map +1 -0
- package/dist/mobius-socket/socket/socket.shim.js +26 -0
- package/dist/mobius-socket/socket/socket.shim.js.map +1 -0
- package/dist/mobius-socket/socket/types.js +7 -0
- package/dist/mobius-socket/socket/types.js.map +1 -0
- package/dist/mobius-socket/socket.test.js +727 -0
- package/dist/mobius-socket/socket.test.js.map +1 -0
- package/dist/mobius-socket/test/mocha-helpers.js +23 -0
- package/dist/mobius-socket/test/mocha-helpers.js.map +1 -0
- package/dist/mobius-socket/test/promise-tick.js +28 -0
- package/dist/mobius-socket/test/promise-tick.js.map +1 -0
- package/dist/mobius-socket/types.js +7 -0
- package/dist/mobius-socket/types.js.map +1 -0
- package/dist/module/CallHistory/CallHistory.js +28 -17
- package/dist/module/CallRecording/CallRecording.js +56 -0
- package/dist/module/CallRecording/WxcCallRecordingConnector.js +257 -0
- package/dist/module/CallRecording/callRecordingFixtures.js +201 -0
- package/dist/module/CallRecording/constants.js +28 -0
- package/dist/module/CallRecording/types.js +19 -0
- package/dist/module/CallRecording/utils.js +14 -0
- package/dist/module/CallingClient/CallingClient.js +166 -8
- package/dist/module/CallingClient/calling/call.js +201 -68
- package/dist/module/CallingClient/calling/callManager.js +51 -11
- package/dist/module/CallingClient/calling/types.js +2 -0
- package/dist/module/CallingClient/constants.js +29 -0
- package/dist/module/CallingClient/line/index.js +4 -2
- package/dist/module/CallingClient/registration/register.js +274 -64
- package/dist/module/CallingClient/registration/types.js +5 -1
- package/dist/module/CallingClient/registration/webWorker.js +42 -61
- package/dist/module/CallingClient/registration/webWorkerStr.js +47 -82
- package/dist/module/CallingClient/utils/constants.js +36 -0
- package/dist/module/CallingClient/utils/index.js +5 -0
- package/dist/module/CallingClient/utils/mobiusSocketMapper.js +72 -0
- package/dist/module/CallingClient/utils/request.js +211 -0
- package/dist/module/CallingClient/utils/types.js +1 -0
- package/dist/module/CallingClient/utils/wsFeatureFlag.js +41 -0
- package/dist/module/Contacts/ContactsClient.js +1 -1
- package/dist/module/Errors/types.js +2 -0
- package/dist/module/Events/types.js +23 -10
- package/dist/module/Metrics/index.js +48 -1
- package/dist/module/Metrics/types.js +18 -0
- package/dist/module/api.js +3 -2
- package/dist/module/common/Utils.js +85 -22
- package/dist/module/common/testUtil.js +6 -1
- package/dist/module/common/types.js +3 -0
- package/dist/module/index.js +7 -3
- package/dist/module/mobius-socket/config.js +15 -0
- package/dist/module/mobius-socket/errors.js +58 -0
- package/dist/module/mobius-socket/index.js +24 -0
- package/dist/module/mobius-socket/mobius-socket.js +593 -0
- package/dist/module/mobius-socket/socket/constants.js +26 -0
- package/dist/module/mobius-socket/socket/index.js +4 -0
- package/dist/module/mobius-socket/socket/socket-base.js +368 -0
- package/dist/module/mobius-socket/socket/socket.js +9 -0
- package/dist/module/mobius-socket/socket/socket.shim.js +12 -0
- package/dist/module/mobius-socket/socket/types.js +1 -0
- package/dist/module/mobius-socket/types.js +1 -0
- package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
- package/dist/types/CallRecording/CallRecording.d.ts +18 -0
- package/dist/types/CallRecording/CallRecording.d.ts.map +1 -0
- package/dist/types/CallRecording/WxcCallRecordingConnector.d.ts +23 -0
- package/dist/types/CallRecording/WxcCallRecordingConnector.d.ts.map +1 -0
- package/dist/types/CallRecording/callRecordingFixtures.d.ts +61 -0
- package/dist/types/CallRecording/callRecordingFixtures.d.ts.map +1 -0
- package/dist/types/CallRecording/constants.d.ts +29 -0
- package/dist/types/CallRecording/constants.d.ts.map +1 -0
- package/dist/types/CallRecording/types.d.ts +176 -0
- package/dist/types/CallRecording/types.d.ts.map +1 -0
- package/dist/types/CallRecording/utils.d.ts +3 -0
- package/dist/types/CallRecording/utils.d.ts.map +1 -0
- package/dist/types/CallingClient/CallingClient.d.ts +10 -1
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/call.d.ts +17 -3
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/callManager.d.ts +8 -4
- package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/types.d.ts +38 -9
- package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +29 -0
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/line/index.d.ts +1 -1
- package/dist/types/CallingClient/line/index.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/register.d.ts +10 -2
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/types.d.ts +29 -3
- package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
- package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
- package/dist/types/CallingClient/types.d.ts +6 -3
- package/dist/types/CallingClient/types.d.ts.map +1 -1
- package/dist/types/CallingClient/utils/constants.d.ts +35 -0
- package/dist/types/CallingClient/utils/constants.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/index.d.ts +6 -0
- package/dist/types/CallingClient/utils/index.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts +5 -0
- package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/request.d.ts +28 -0
- package/dist/types/CallingClient/utils/request.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/types.d.ts +34 -0
- package/dist/types/CallingClient/utils/types.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts +4 -0
- package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts.map +1 -0
- package/dist/types/Errors/types.d.ts +2 -0
- package/dist/types/Errors/types.d.ts.map +1 -1
- package/dist/types/Events/types.d.ts +80 -16
- package/dist/types/Events/types.d.ts.map +1 -1
- package/dist/types/Metrics/index.d.ts.map +1 -1
- package/dist/types/Metrics/types.d.ts +19 -2
- package/dist/types/Metrics/types.d.ts.map +1 -1
- package/dist/types/SDKConnector/types.d.ts +39 -12
- package/dist/types/SDKConnector/types.d.ts.map +1 -1
- package/dist/types/api.d.ts +6 -4
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts +9 -4
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/dist/types/common/testUtil.d.ts +5 -1
- package/dist/types/common/testUtil.d.ts.map +1 -1
- package/dist/types/common/types.d.ts +9 -1
- package/dist/types/common/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +9 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/mobius-socket/config.d.ts +17 -0
- package/dist/types/mobius-socket/config.d.ts.map +1 -0
- package/dist/types/mobius-socket/errors.d.ts +32 -0
- package/dist/types/mobius-socket/errors.d.ts.map +1 -0
- package/dist/types/mobius-socket/index.d.ts +14 -0
- package/dist/types/mobius-socket/index.d.ts.map +1 -0
- package/dist/types/mobius-socket/mobius-socket.d.ts +48 -0
- package/dist/types/mobius-socket/mobius-socket.d.ts.map +1 -0
- package/dist/types/mobius-socket/socket/constants.d.ts +27 -0
- package/dist/types/mobius-socket/socket/constants.d.ts.map +1 -0
- package/dist/types/mobius-socket/socket/index.d.ts +5 -0
- package/dist/types/mobius-socket/socket/index.d.ts.map +1 -0
- package/dist/types/mobius-socket/socket/socket-base.d.ts +43 -0
- package/dist/types/mobius-socket/socket/socket-base.d.ts.map +1 -0
- package/dist/types/mobius-socket/socket/socket.d.ts +6 -0
- package/dist/types/mobius-socket/socket/socket.d.ts.map +1 -0
- package/dist/types/mobius-socket/socket/socket.shim.d.ts +6 -0
- package/dist/types/mobius-socket/socket/socket.shim.d.ts.map +1 -0
- package/dist/types/mobius-socket/socket/types.d.ts +61 -0
- package/dist/types/mobius-socket/socket/types.d.ts.map +1 -0
- package/dist/types/mobius-socket/types.d.ts +21 -0
- package/dist/types/mobius-socket/types.d.ts.map +1 -0
- package/package.json +21 -5
- package/src/mobius-socket/socket/socket.shim.ts +22 -0
- package/src/mobius-socket/socket/socket.ts +14 -0
|
@@ -0,0 +1,1349 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs2/helpers/typeof");
|
|
4
|
+
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
|
5
|
+
var _Array$from = require("@babel/runtime-corejs2/core-js/array/from");
|
|
6
|
+
var _Symbol = require("@babel/runtime-corejs2/core-js/symbol");
|
|
7
|
+
var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator");
|
|
8
|
+
var _Array$isArray = require("@babel/runtime-corejs2/core-js/array/is-array");
|
|
9
|
+
var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
|
|
10
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
11
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
12
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
13
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
14
|
+
value: true
|
|
15
|
+
});
|
|
16
|
+
exports.createClient = exports.CallingClient = void 0;
|
|
17
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
18
|
+
var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
|
|
19
|
+
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
20
|
+
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
21
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/toConsumableArray"));
|
|
22
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
23
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
24
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
25
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
26
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
27
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
28
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
29
|
+
var Media = _interopRequireWildcard(require("@webex/internal-media-core"));
|
|
30
|
+
var _asyncMutex = require("async-mutex");
|
|
31
|
+
var _constants = require("../common/constants");
|
|
32
|
+
var _Utils = require("../common/Utils");
|
|
33
|
+
var _types = require("../Logger/types");
|
|
34
|
+
var _SDKConnector = _interopRequireDefault(require("../SDKConnector"));
|
|
35
|
+
var _impl = require("../Events/impl");
|
|
36
|
+
var _types2 = require("../Events/types");
|
|
37
|
+
var _types3 = require("../common/types");
|
|
38
|
+
var _types4 = require("./calling/types");
|
|
39
|
+
var _Logger = _interopRequireDefault(require("../Logger"));
|
|
40
|
+
var _callManager = require("./calling/callManager");
|
|
41
|
+
var _constants2 = require("./constants");
|
|
42
|
+
var _line = _interopRequireDefault(require("./line"));
|
|
43
|
+
var _types5 = require("../Metrics/types");
|
|
44
|
+
var _Metrics = require("../Metrics");
|
|
45
|
+
var _windowsChromiumIceWarmupUtils = _interopRequireDefault(require("./windowsChromiumIceWarmupUtils"));
|
|
46
|
+
var _request = require("./utils/request");
|
|
47
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t1 in e) "default" !== _t1 && {}.hasOwnProperty.call(e, _t1) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t1)) && (i.get || i.set) ? o(f, _t1, i) : f[_t1] = e[_t1]); return f; })(e, t); }
|
|
48
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof _Symbol && r[_Symbol$iterator] || r["@@iterator"]; if (!t) { if (_Array$isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
49
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? _Array$from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
50
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
51
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? _Reflect$construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
52
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /* eslint-disable no-underscore-dangle */ /* eslint-disable valid-jsdoc */ /* eslint-disable @typescript-eslint/no-shadow */
|
|
53
|
+
/**
|
|
54
|
+
* The `CallingClient` module provides a set of APIs for line registration and calling functionalities within the SDK.
|
|
55
|
+
*
|
|
56
|
+
* The following code snippet demonstrates how to create an instance of `CallingClient` using a `webex` instance and `callingConfig`:
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```javascript
|
|
60
|
+
* const callingClient = createClient(webex, callingConfig);
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
var CallingClient = exports.CallingClient = /*#__PURE__*/function (_Eventing) {
|
|
64
|
+
/**
|
|
65
|
+
* @ignore
|
|
66
|
+
*/
|
|
67
|
+
function CallingClient(webex, config) {
|
|
68
|
+
var _this$sdkConfig, _this$sdkConfig$servi, _this$sdkConfig2, _this$sdkConfig2$logg, _this$sdkConfig3;
|
|
69
|
+
var _this;
|
|
70
|
+
(0, _classCallCheck2.default)(this, CallingClient);
|
|
71
|
+
_this = _callSuper(this, CallingClient);
|
|
72
|
+
(0, _defineProperty2.default)(_this, "sdkConnector", void 0);
|
|
73
|
+
(0, _defineProperty2.default)(_this, "webex", void 0);
|
|
74
|
+
(0, _defineProperty2.default)(_this, "mutex", void 0);
|
|
75
|
+
(0, _defineProperty2.default)(_this, "callManager", void 0);
|
|
76
|
+
(0, _defineProperty2.default)(_this, "metricManager", void 0);
|
|
77
|
+
(0, _defineProperty2.default)(_this, "sdkConfig", void 0);
|
|
78
|
+
(0, _defineProperty2.default)(_this, "serviceData", void 0);
|
|
79
|
+
(0, _defineProperty2.default)(_this, "primaryMobiusUris", void 0);
|
|
80
|
+
(0, _defineProperty2.default)(_this, "backupMobiusUris", void 0);
|
|
81
|
+
(0, _defineProperty2.default)(_this, "primaryWssMobiusUris", void 0);
|
|
82
|
+
(0, _defineProperty2.default)(_this, "backupWssMobiusUris", void 0);
|
|
83
|
+
(0, _defineProperty2.default)(_this, "mobiusClusters", void 0);
|
|
84
|
+
(0, _defineProperty2.default)(_this, "mobiusHost", void 0);
|
|
85
|
+
(0, _defineProperty2.default)(_this, "mediaEngine", void 0);
|
|
86
|
+
(0, _defineProperty2.default)(_this, "lineDict", {});
|
|
87
|
+
(0, _defineProperty2.default)(_this, "apiRequest", void 0);
|
|
88
|
+
(0, _defineProperty2.default)(_this, "isNetworkDown", false);
|
|
89
|
+
(0, _defineProperty2.default)(_this, "networkDownTimestamp", '');
|
|
90
|
+
(0, _defineProperty2.default)(_this, "networkUpTimestamp", '');
|
|
91
|
+
(0, _defineProperty2.default)(_this, "mercuryDownTimestamp", '');
|
|
92
|
+
(0, _defineProperty2.default)(_this, "mercuryUpTimestamp", '');
|
|
93
|
+
(0, _defineProperty2.default)(_this, "handleNetworkOffline", /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
94
|
+
var line;
|
|
95
|
+
return _regenerator.default.wrap(function (_context) {
|
|
96
|
+
while (1) switch (_context.prev = _context.next) {
|
|
97
|
+
case 0:
|
|
98
|
+
_this.networkDownTimestamp = new Date().toISOString();
|
|
99
|
+
_context.next = 1;
|
|
100
|
+
return _this.checkNetworkReachability();
|
|
101
|
+
case 1:
|
|
102
|
+
_this.isNetworkDown = !_context.sent;
|
|
103
|
+
_Logger.default.warn("Network has gone down, wait for it to come back up", {
|
|
104
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
105
|
+
method: _constants2.METHODS.NETWORK_OFFLINE
|
|
106
|
+
});
|
|
107
|
+
if (_this.isNetworkDown) {
|
|
108
|
+
line = (0, _values.default)(_this.lineDict)[0];
|
|
109
|
+
line.registration.clearKeepaliveTimer();
|
|
110
|
+
}
|
|
111
|
+
case 2:
|
|
112
|
+
case "end":
|
|
113
|
+
return _context.stop();
|
|
114
|
+
}
|
|
115
|
+
}, _callee);
|
|
116
|
+
})));
|
|
117
|
+
// Wondering if we should keep this for timestamp recording purpose
|
|
118
|
+
(0, _defineProperty2.default)(_this, "handleNetworkOnline", function () {
|
|
119
|
+
_Logger.default.info(_constants.METHOD_START_MESSAGE, {
|
|
120
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
121
|
+
method: _constants2.METHODS.NETWORK_ONLINE
|
|
122
|
+
});
|
|
123
|
+
_this.networkUpTimestamp = new Date().toISOString();
|
|
124
|
+
});
|
|
125
|
+
(0, _defineProperty2.default)(_this, "handleMercuryOffline", function () {
|
|
126
|
+
_Logger.default.warn("Mercury down, waiting for connection to be up", {
|
|
127
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
128
|
+
method: _constants2.METHODS.MERCURY_OFFLINE
|
|
129
|
+
});
|
|
130
|
+
_this.mercuryDownTimestamp = new Date().toISOString();
|
|
131
|
+
_this.metricManager.submitConnectionMetrics(_types5.METRIC_EVENT.CONNECTION_ERROR, _types5.CONNECTION_ACTION.MERCURY_DOWN, _types5.METRIC_TYPE.BEHAVIORAL, _this.mercuryDownTimestamp, _this.mercuryUpTimestamp);
|
|
132
|
+
});
|
|
133
|
+
(0, _defineProperty2.default)(_this, "handleMercuryOnline", /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
134
|
+
var callCheckInterval;
|
|
135
|
+
return _regenerator.default.wrap(function (_context3) {
|
|
136
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
137
|
+
case 0:
|
|
138
|
+
_Logger.default.info(_constants.METHOD_START_MESSAGE, {
|
|
139
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
140
|
+
method: _constants2.METHODS.MERCURY_ONLINE
|
|
141
|
+
});
|
|
142
|
+
_this.mercuryUpTimestamp = new Date().toISOString();
|
|
143
|
+
if (!_this.isNetworkDown) {
|
|
144
|
+
_context3.next = 2;
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
callCheckInterval = setInterval(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
148
|
+
var line;
|
|
149
|
+
return _regenerator.default.wrap(function (_context2) {
|
|
150
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
151
|
+
case 0:
|
|
152
|
+
if ((0, _keys.default)(_this.callManager.getActiveCalls()).length) {
|
|
153
|
+
_context2.next = 3;
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
clearInterval(callCheckInterval);
|
|
157
|
+
line = (0, _values.default)(_this.lineDict)[0];
|
|
158
|
+
if (!(line.getStatus() !== _types3.RegistrationStatus.IDLE)) {
|
|
159
|
+
_context2.next = 2;
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
_context2.next = 1;
|
|
163
|
+
return line.registration.handleConnectionRestoration(_this.isNetworkDown);
|
|
164
|
+
case 1:
|
|
165
|
+
_this.isNetworkDown = _context2.sent;
|
|
166
|
+
_context2.next = 3;
|
|
167
|
+
break;
|
|
168
|
+
case 2:
|
|
169
|
+
_this.isNetworkDown = false;
|
|
170
|
+
case 3:
|
|
171
|
+
case "end":
|
|
172
|
+
return _context2.stop();
|
|
173
|
+
}
|
|
174
|
+
}, _callee2);
|
|
175
|
+
})), _constants2.NETWORK_FLAP_TIMEOUT);
|
|
176
|
+
if (!(0, _keys.default)(_this.callManager.getActiveCalls()).length) {
|
|
177
|
+
_context3.next = 1;
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
_context3.next = 1;
|
|
181
|
+
return _this.checkCallStatus();
|
|
182
|
+
case 1:
|
|
183
|
+
_this.metricManager.submitConnectionMetrics(_types5.METRIC_EVENT.CONNECTION_ERROR, _types5.CONNECTION_ACTION.NETWORK_FLAP, _types5.METRIC_TYPE.BEHAVIORAL, _this.networkDownTimestamp, _this.networkUpTimestamp);
|
|
184
|
+
_context3.next = 4;
|
|
185
|
+
break;
|
|
186
|
+
case 2:
|
|
187
|
+
if (!(0, _keys.default)(_this.callManager.getActiveCalls()).length) {
|
|
188
|
+
_context3.next = 3;
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
_context3.next = 3;
|
|
192
|
+
return _this.checkCallStatus();
|
|
193
|
+
case 3:
|
|
194
|
+
_this.metricManager.submitConnectionMetrics(_types5.METRIC_EVENT.CONNECTION_ERROR, _types5.CONNECTION_ACTION.MERCURY_UP, _types5.METRIC_TYPE.BEHAVIORAL, _this.mercuryDownTimestamp, _this.mercuryUpTimestamp);
|
|
195
|
+
case 4:
|
|
196
|
+
case "end":
|
|
197
|
+
return _context3.stop();
|
|
198
|
+
}
|
|
199
|
+
}, _callee3);
|
|
200
|
+
})));
|
|
201
|
+
(0, _defineProperty2.default)(_this, "handleMobiusAsyncEvent", /*#__PURE__*/function () {
|
|
202
|
+
var _ref4 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4(event) {
|
|
203
|
+
var loggerContext, eventType, line;
|
|
204
|
+
return _regenerator.default.wrap(function (_context4) {
|
|
205
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
206
|
+
case 0:
|
|
207
|
+
loggerContext = {
|
|
208
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
209
|
+
method: _constants2.METHODS.HANDLE_MOBIUS_ASYNC_EVENT
|
|
210
|
+
};
|
|
211
|
+
eventType = event === null || event === void 0 ? void 0 : event.data.eventType;
|
|
212
|
+
_Logger.default.trace("Mobius async event received - eventType: ".concat(eventType !== null && eventType !== void 0 ? eventType : 'undefined'), loggerContext);
|
|
213
|
+
if (eventType) {
|
|
214
|
+
_context4.next = 1;
|
|
215
|
+
break;
|
|
216
|
+
}
|
|
217
|
+
_Logger.default.warn('Dropping unsupported mobius socket payload', loggerContext);
|
|
218
|
+
return _context4.abrupt("return");
|
|
219
|
+
case 1:
|
|
220
|
+
if (!(eventType === _types4.MobiusEventType.REGISTRATION_DOWN)) {
|
|
221
|
+
_context4.next = 4;
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
_Logger.default.warn("Received ".concat(eventType, " event from Mobius."), loggerContext);
|
|
225
|
+
line = (0, _values.default)(_this.lineDict)[0];
|
|
226
|
+
if (line) {
|
|
227
|
+
_context4.next = 2;
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
_Logger.default.warn('No line found, skipping registration down event', loggerContext);
|
|
231
|
+
return _context4.abrupt("return");
|
|
232
|
+
case 2:
|
|
233
|
+
_context4.next = 3;
|
|
234
|
+
return line.registration.handleRegistrationDownEvent(event);
|
|
235
|
+
case 3:
|
|
236
|
+
_this.metricManager.submitMobiusSocketMetric(_types5.METRIC_EVENT.MOBIUS_SOCKET_ERROR, _types5.MOBIUS_SOCKET_ACTION.REGISTRATION_DOWN, _types5.METRIC_TYPE.BEHAVIORAL, undefined, event === null || event === void 0 ? void 0 : event.trackingId, undefined, eventType);
|
|
237
|
+
return _context4.abrupt("return");
|
|
238
|
+
case 4:
|
|
239
|
+
_this.callManager.dequeueWsEvents(event);
|
|
240
|
+
_Logger.default.trace("Mobius async event dispatched to CallManager - eventType: ".concat(eventType), loggerContext);
|
|
241
|
+
case 5:
|
|
242
|
+
case "end":
|
|
243
|
+
return _context4.stop();
|
|
244
|
+
}
|
|
245
|
+
}, _callee4);
|
|
246
|
+
}));
|
|
247
|
+
return function (_x) {
|
|
248
|
+
return _ref4.apply(this, arguments);
|
|
249
|
+
};
|
|
250
|
+
}());
|
|
251
|
+
/**
|
|
252
|
+
* Handler registered for ALL_CALLS_CLEARED event emitted by callManager.
|
|
253
|
+
*
|
|
254
|
+
* If re-register attempt was deferred earlier due to active call(s), then it
|
|
255
|
+
* will be attempted here on receiving a notification from callManager that all
|
|
256
|
+
* calls are cleaned up.
|
|
257
|
+
*/
|
|
258
|
+
(0, _defineProperty2.default)(_this, "callsClearedHandler", /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6() {
|
|
259
|
+
var registration;
|
|
260
|
+
return _regenerator.default.wrap(function (_context6) {
|
|
261
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
262
|
+
case 0:
|
|
263
|
+
_Logger.default.info(_constants.METHOD_START_MESSAGE, {
|
|
264
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
265
|
+
method: _constants2.METHODS.CALLS_CLEARED_HANDLER
|
|
266
|
+
});
|
|
267
|
+
// this is a temporary logic to get registration obj
|
|
268
|
+
// it will change once we have proper lineId and multiple lines as well
|
|
269
|
+
registration = (0, _values.default)(_this.lineDict)[0].registration;
|
|
270
|
+
if (registration.isDeviceRegistered()) {
|
|
271
|
+
_context6.next = 1;
|
|
272
|
+
break;
|
|
273
|
+
}
|
|
274
|
+
_context6.next = 1;
|
|
275
|
+
return _this.mutex.runExclusive(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5() {
|
|
276
|
+
return _regenerator.default.wrap(function (_context5) {
|
|
277
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
278
|
+
case 0:
|
|
279
|
+
if (!registration.isReconnectPending()) {
|
|
280
|
+
_context5.next = 1;
|
|
281
|
+
break;
|
|
282
|
+
}
|
|
283
|
+
_Logger.default.info('All calls cleared, reconnecting', {
|
|
284
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
285
|
+
method: _constants2.CALLS_CLEARED_HANDLER_UTIL
|
|
286
|
+
});
|
|
287
|
+
_context5.next = 1;
|
|
288
|
+
return registration.reconnectOnFailure(_constants2.CALLS_CLEARED_HANDLER_UTIL);
|
|
289
|
+
case 1:
|
|
290
|
+
case "end":
|
|
291
|
+
return _context5.stop();
|
|
292
|
+
}
|
|
293
|
+
}, _callee5);
|
|
294
|
+
})));
|
|
295
|
+
case 1:
|
|
296
|
+
case "end":
|
|
297
|
+
return _context6.stop();
|
|
298
|
+
}
|
|
299
|
+
}, _callee6);
|
|
300
|
+
})));
|
|
301
|
+
_this.sdkConnector = _SDKConnector.default;
|
|
302
|
+
if (!_this.sdkConnector.getWebex()) {
|
|
303
|
+
var _config$logger;
|
|
304
|
+
_SDKConnector.default.setWebex(webex);
|
|
305
|
+
if (config !== null && config !== void 0 && (_config$logger = config.logger) !== null && _config$logger !== void 0 && _config$logger.level && webex.logger.config) {
|
|
306
|
+
webex.logger.config.level = config.logger.level; // override the webex logger level
|
|
307
|
+
}
|
|
308
|
+
_Logger.default.setWebexLogger(webex.logger);
|
|
309
|
+
}
|
|
310
|
+
_this.mutex = new _asyncMutex.Mutex();
|
|
311
|
+
_this.webex = _this.sdkConnector.getWebex();
|
|
312
|
+
_this.sdkConfig = config;
|
|
313
|
+
_this.serviceData = (_this$sdkConfig = _this.sdkConfig) !== null && _this$sdkConfig !== void 0 && (_this$sdkConfig$servi = _this$sdkConfig.serviceData) !== null && _this$sdkConfig$servi !== void 0 && _this$sdkConfig$servi.indicator ? _this.sdkConfig.serviceData : {
|
|
314
|
+
indicator: _types3.ServiceIndicator.CALLING,
|
|
315
|
+
domain: ''
|
|
316
|
+
};
|
|
317
|
+
var logLevel = (_this$sdkConfig2 = _this.sdkConfig) !== null && _this$sdkConfig2 !== void 0 && (_this$sdkConfig2$logg = _this$sdkConfig2.logger) !== null && _this$sdkConfig2$logg !== void 0 && _this$sdkConfig2$logg.level ? _this.sdkConfig.logger.level : _types.LOGGER.ERROR;
|
|
318
|
+
_Logger.default.setLogger(logLevel, _constants2.CALLING_CLIENT_FILE);
|
|
319
|
+
(0, _Utils.validateServiceData)(_this.serviceData);
|
|
320
|
+
_this.callManager = (0, _callManager.getCallManager)(_this.webex, _this.serviceData.indicator, (_this$sdkConfig3 = _this.sdkConfig) === null || _this$sdkConfig3 === void 0 ? void 0 : _this$sdkConfig3.iceGathering);
|
|
321
|
+
_this.metricManager = (0, _Metrics.getMetricManager)(_this.webex, _this.serviceData.indicator);
|
|
322
|
+
_this.mediaEngine = Media;
|
|
323
|
+
var adaptedLogger = {
|
|
324
|
+
log: function log() {
|
|
325
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
326
|
+
args[_key] = arguments[_key];
|
|
327
|
+
}
|
|
328
|
+
return webex.logger.log(args.join(' : '));
|
|
329
|
+
},
|
|
330
|
+
error: function error() {
|
|
331
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
332
|
+
args[_key2] = arguments[_key2];
|
|
333
|
+
}
|
|
334
|
+
return webex.logger.error(args.join(' : '));
|
|
335
|
+
},
|
|
336
|
+
warn: function warn() {
|
|
337
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
338
|
+
args[_key3] = arguments[_key3];
|
|
339
|
+
}
|
|
340
|
+
return webex.logger.warn(args.join(' : '));
|
|
341
|
+
},
|
|
342
|
+
info: function info() {
|
|
343
|
+
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
344
|
+
args[_key4] = arguments[_key4];
|
|
345
|
+
}
|
|
346
|
+
return webex.logger.info(args.join(' : '));
|
|
347
|
+
},
|
|
348
|
+
trace: function trace() {
|
|
349
|
+
for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
|
350
|
+
args[_key5] = arguments[_key5];
|
|
351
|
+
}
|
|
352
|
+
return webex.logger.trace(args.join(' : '));
|
|
353
|
+
},
|
|
354
|
+
debug: function debug() {
|
|
355
|
+
for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
|
|
356
|
+
args[_key6] = arguments[_key6];
|
|
357
|
+
}
|
|
358
|
+
return webex.logger.debug(args.join(' : '));
|
|
359
|
+
}
|
|
360
|
+
};
|
|
361
|
+
_this.mediaEngine.setLogger(adaptedLogger);
|
|
362
|
+
_this.primaryMobiusUris = [];
|
|
363
|
+
_this.backupMobiusUris = [];
|
|
364
|
+
_this.primaryWssMobiusUris = [];
|
|
365
|
+
_this.backupWssMobiusUris = [];
|
|
366
|
+
_this.mobiusClusters = _this.webex.internal.services.getMobiusClusters();
|
|
367
|
+
_this.mobiusHost = '';
|
|
368
|
+
_this.apiRequest = _request.APIRequest.getInstance({
|
|
369
|
+
webex: _this.webex
|
|
370
|
+
});
|
|
371
|
+
_this.registerSessionsListener();
|
|
372
|
+
_this.registerCallsClearedListener();
|
|
373
|
+
return _this;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* Initializes the `CallingClient` by performing the following steps:
|
|
378
|
+
*
|
|
379
|
+
* 1. Retrieves list of servers.
|
|
380
|
+
* 2. Creates a line.
|
|
381
|
+
* 3. Sets up network change detection.
|
|
382
|
+
*
|
|
383
|
+
* This method should be called once to initialize the `callingClient`.
|
|
384
|
+
*
|
|
385
|
+
* @returns A promise that resolves when the initialization is complete.
|
|
386
|
+
* @ignore
|
|
387
|
+
*/
|
|
388
|
+
(0, _inherits2.default)(CallingClient, _Eventing);
|
|
389
|
+
return (0, _createClass2.default)(CallingClient, [{
|
|
390
|
+
key: "init",
|
|
391
|
+
value: (function () {
|
|
392
|
+
var _init = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7() {
|
|
393
|
+
var _window,
|
|
394
|
+
_window$navigator,
|
|
395
|
+
_this2 = this;
|
|
396
|
+
var loggerContext, ua, _this$sdkConfig4, rtmsDomain, _t;
|
|
397
|
+
return _regenerator.default.wrap(function (_context7) {
|
|
398
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
399
|
+
case 0:
|
|
400
|
+
loggerContext = {
|
|
401
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
402
|
+
method: _constants2.METHODS.INIT
|
|
403
|
+
};
|
|
404
|
+
_Logger.default.info(_constants.METHOD_START_MESSAGE, loggerContext);
|
|
405
|
+
|
|
406
|
+
// Only for Windows Chromium based browsers we need to do the ICE warmup
|
|
407
|
+
if (!(typeof window !== 'undefined' && (_window = window) !== null && _window !== void 0 && (_window$navigator = _window.navigator) !== null && _window$navigator !== void 0 && _window$navigator.userAgent)) {
|
|
408
|
+
_context7.next = 4;
|
|
409
|
+
break;
|
|
410
|
+
}
|
|
411
|
+
ua = window.navigator.userAgent;
|
|
412
|
+
if (!ua.toLowerCase().includes('windows')) {
|
|
413
|
+
_context7.next = 4;
|
|
414
|
+
break;
|
|
415
|
+
}
|
|
416
|
+
_Logger.default.info('Starting ICE warmup for Windows Chromium based browser', {
|
|
417
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
418
|
+
method: 'init'
|
|
419
|
+
});
|
|
420
|
+
_context7.prev = 1;
|
|
421
|
+
_context7.next = 2;
|
|
422
|
+
return (0, _windowsChromiumIceWarmupUtils.default)({
|
|
423
|
+
iceServers: [],
|
|
424
|
+
timeoutMs: 1000
|
|
425
|
+
});
|
|
426
|
+
case 2:
|
|
427
|
+
_Logger.default.info("ICE warmup completed", {
|
|
428
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
429
|
+
method: 'init'
|
|
430
|
+
});
|
|
431
|
+
_context7.next = 4;
|
|
432
|
+
break;
|
|
433
|
+
case 3:
|
|
434
|
+
_context7.prev = 3;
|
|
435
|
+
_t = _context7["catch"](1);
|
|
436
|
+
_Logger.default.warn("ICE warmup failed: ".concat(_t), {
|
|
437
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
438
|
+
method: 'init'
|
|
439
|
+
});
|
|
440
|
+
case 4:
|
|
441
|
+
_context7.next = 5;
|
|
442
|
+
return this.getMobiusServers();
|
|
443
|
+
case 5:
|
|
444
|
+
if (!this.apiRequest.isSocketEnabled()) {
|
|
445
|
+
_context7.next = 7;
|
|
446
|
+
break;
|
|
447
|
+
}
|
|
448
|
+
this.apiRequest.registerMobiusSocketConnectionListener({
|
|
449
|
+
onConnected: function onConnected() {
|
|
450
|
+
return _this2.emit(_types2.CALLING_CLIENT_EVENT_KEYS.MOBIUS_SOCKET_CONNECTED);
|
|
451
|
+
},
|
|
452
|
+
onDisconnected: function onDisconnected(reason) {
|
|
453
|
+
return _this2.emit(_types2.CALLING_CLIENT_EVENT_KEYS.MOBIUS_SOCKET_DISCONNECTED, {
|
|
454
|
+
reason: reason
|
|
455
|
+
});
|
|
456
|
+
}
|
|
457
|
+
});
|
|
458
|
+
_context7.next = 6;
|
|
459
|
+
return this.connectToMobiusSocket();
|
|
460
|
+
case 6:
|
|
461
|
+
this.apiRequest.registerMobiusSocketListener(this.handleMobiusAsyncEvent);
|
|
462
|
+
case 7:
|
|
463
|
+
// Auto-fetch RTMS domain from service catalog for contact-center flows
|
|
464
|
+
if (this.serviceData.indicator === _types3.ServiceIndicator.CONTACT_CENTER && !this.serviceData.domain) {
|
|
465
|
+
rtmsDomain = this.getRTMSDomain();
|
|
466
|
+
this.serviceData.domain = rtmsDomain;
|
|
467
|
+
if ((_this$sdkConfig4 = this.sdkConfig) !== null && _this$sdkConfig4 !== void 0 && _this$sdkConfig4.serviceData) {
|
|
468
|
+
this.sdkConfig.serviceData.domain = this.serviceData.domain;
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
if ((0, _Utils.isValidServiceDomain)(this.serviceData)) {
|
|
472
|
+
_context7.next = 8;
|
|
473
|
+
break;
|
|
474
|
+
}
|
|
475
|
+
throw new Error('Invalid service domain.');
|
|
476
|
+
case 8:
|
|
477
|
+
_context7.next = 9;
|
|
478
|
+
return this.createLine();
|
|
479
|
+
case 9:
|
|
480
|
+
this.setupNetworkEventListeners();
|
|
481
|
+
_Logger.default.log('CallingClient initialization complete', loggerContext);
|
|
482
|
+
case 10:
|
|
483
|
+
case "end":
|
|
484
|
+
return _context7.stop();
|
|
485
|
+
}
|
|
486
|
+
}, _callee7, this, [[1, 3]]);
|
|
487
|
+
}));
|
|
488
|
+
function init() {
|
|
489
|
+
return _init.apply(this, arguments);
|
|
490
|
+
}
|
|
491
|
+
return init;
|
|
492
|
+
}()
|
|
493
|
+
/**
|
|
494
|
+
* Retrieves the RTMS domain from the service catalog for contact-center flows.
|
|
495
|
+
*
|
|
496
|
+
* @returns The RTMS domain from catalog when available.
|
|
497
|
+
*/
|
|
498
|
+
)
|
|
499
|
+
}, {
|
|
500
|
+
key: "getRTMSDomain",
|
|
501
|
+
value: function getRTMSDomain() {
|
|
502
|
+
_Logger.default.info('Fetching RTMS domain from service catalog', {
|
|
503
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
504
|
+
method: _constants2.METHODS.GET_RTMS_DOMAIN
|
|
505
|
+
});
|
|
506
|
+
try {
|
|
507
|
+
var rtmsURL = this.webex.internal.services.get(_constants2.WCC_CALLING_RTMS_DOMAIN);
|
|
508
|
+
var url = new URL(rtmsURL);
|
|
509
|
+
_Logger.default.info("RTMS domain resolved from catalog: ".concat(url.hostname), {
|
|
510
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
511
|
+
method: _constants2.METHODS.GET_RTMS_DOMAIN
|
|
512
|
+
});
|
|
513
|
+
return url.hostname;
|
|
514
|
+
} catch (error) {
|
|
515
|
+
_Logger.default.warn("Failed to fetch RTMS domain from service catalog: ".concat(error), {
|
|
516
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
517
|
+
method: _constants2.METHODS.GET_RTMS_DOMAIN
|
|
518
|
+
});
|
|
519
|
+
return '';
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
/**
|
|
524
|
+
* Ping a reliable external endpoint with a short timeout to infer connectivity.
|
|
525
|
+
*/
|
|
526
|
+
}, {
|
|
527
|
+
key: "checkNetworkReachability",
|
|
528
|
+
value: (function () {
|
|
529
|
+
var _checkNetworkReachability = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8() {
|
|
530
|
+
var controller, timeoutId, _t2;
|
|
531
|
+
return _regenerator.default.wrap(function (_context8) {
|
|
532
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
533
|
+
case 0:
|
|
534
|
+
_context8.prev = 0;
|
|
535
|
+
controller = new AbortController();
|
|
536
|
+
timeoutId = setTimeout(function () {
|
|
537
|
+
return controller.abort();
|
|
538
|
+
}, 3000); // Using a common connectivity check endpoint that returns 204 with minimal payload.
|
|
539
|
+
// no-cors mode yields an opaque response but a successful fetch implies reachability.
|
|
540
|
+
_context8.next = 1;
|
|
541
|
+
return fetch('https://www.google.com/generate_204', {
|
|
542
|
+
method: 'GET',
|
|
543
|
+
cache: 'no-cache',
|
|
544
|
+
mode: 'no-cors',
|
|
545
|
+
signal: controller.signal
|
|
546
|
+
});
|
|
547
|
+
case 1:
|
|
548
|
+
clearTimeout(timeoutId);
|
|
549
|
+
return _context8.abrupt("return", true);
|
|
550
|
+
case 2:
|
|
551
|
+
_context8.prev = 2;
|
|
552
|
+
_t2 = _context8["catch"](0);
|
|
553
|
+
_Logger.default.warn("Network connectivity probe failed: ".concat(_t2), {
|
|
554
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
555
|
+
method: 'pingExternal'
|
|
556
|
+
});
|
|
557
|
+
return _context8.abrupt("return", false);
|
|
558
|
+
case 3:
|
|
559
|
+
case "end":
|
|
560
|
+
return _context8.stop();
|
|
561
|
+
}
|
|
562
|
+
}, _callee8, null, [[0, 2]]);
|
|
563
|
+
}));
|
|
564
|
+
function checkNetworkReachability() {
|
|
565
|
+
return _checkNetworkReachability.apply(this, arguments);
|
|
566
|
+
}
|
|
567
|
+
return checkNetworkReachability;
|
|
568
|
+
}())
|
|
569
|
+
}, {
|
|
570
|
+
key: "checkCallStatus",
|
|
571
|
+
value: function () {
|
|
572
|
+
var _checkCallStatus = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee9() {
|
|
573
|
+
var loggerContext, calls, _iterator, _step, _loop, _t3;
|
|
574
|
+
return _regenerator.default.wrap(function (_context0) {
|
|
575
|
+
while (1) switch (_context0.prev = _context0.next) {
|
|
576
|
+
case 0:
|
|
577
|
+
loggerContext = {
|
|
578
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
579
|
+
method: 'checkCallStatus'
|
|
580
|
+
};
|
|
581
|
+
calls = (0, _values.default)(this.callManager.getActiveCalls());
|
|
582
|
+
_iterator = _createForOfIteratorHelper(calls);
|
|
583
|
+
_context0.prev = 1;
|
|
584
|
+
_loop = /*#__PURE__*/_regenerator.default.mark(function _loop() {
|
|
585
|
+
var call;
|
|
586
|
+
return _regenerator.default.wrap(function (_context9) {
|
|
587
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
588
|
+
case 0:
|
|
589
|
+
call = _step.value;
|
|
590
|
+
call.postStatus().then(function () {
|
|
591
|
+
_Logger.default.info("Call is active", loggerContext);
|
|
592
|
+
/*
|
|
593
|
+
* Media Renegotiation Possibility if call keepalive succeeds,
|
|
594
|
+
* for cases like WebRTC disconnect and media inactivity.
|
|
595
|
+
*/
|
|
596
|
+
}).catch(function (err) {
|
|
597
|
+
_Logger.default.warn("Call Keepalive failed: ".concat(err), loggerContext);
|
|
598
|
+
call.sendCallStateMachineEvt({
|
|
599
|
+
type: 'E_SEND_CALL_DISCONNECT'
|
|
600
|
+
});
|
|
601
|
+
});
|
|
602
|
+
case 1:
|
|
603
|
+
case "end":
|
|
604
|
+
return _context9.stop();
|
|
605
|
+
}
|
|
606
|
+
}, _loop);
|
|
607
|
+
});
|
|
608
|
+
_iterator.s();
|
|
609
|
+
case 2:
|
|
610
|
+
if ((_step = _iterator.n()).done) {
|
|
611
|
+
_context0.next = 4;
|
|
612
|
+
break;
|
|
613
|
+
}
|
|
614
|
+
return _context0.delegateYield(_loop(), "t0", 3);
|
|
615
|
+
case 3:
|
|
616
|
+
_context0.next = 2;
|
|
617
|
+
break;
|
|
618
|
+
case 4:
|
|
619
|
+
_context0.next = 6;
|
|
620
|
+
break;
|
|
621
|
+
case 5:
|
|
622
|
+
_context0.prev = 5;
|
|
623
|
+
_t3 = _context0["catch"](1);
|
|
624
|
+
_iterator.e(_t3);
|
|
625
|
+
case 6:
|
|
626
|
+
_context0.prev = 6;
|
|
627
|
+
_iterator.f();
|
|
628
|
+
return _context0.finish(6);
|
|
629
|
+
case 7:
|
|
630
|
+
case "end":
|
|
631
|
+
return _context0.stop();
|
|
632
|
+
}
|
|
633
|
+
}, _callee9, this, [[1, 5, 6, 7]]);
|
|
634
|
+
}));
|
|
635
|
+
function checkCallStatus() {
|
|
636
|
+
return _checkCallStatus.apply(this, arguments);
|
|
637
|
+
}
|
|
638
|
+
return checkCallStatus;
|
|
639
|
+
}()
|
|
640
|
+
}, {
|
|
641
|
+
key: "setupNetworkEventListeners",
|
|
642
|
+
value: function setupNetworkEventListeners() {
|
|
643
|
+
var _this3 = this;
|
|
644
|
+
if (typeof window !== 'undefined' && window.addEventListener) {
|
|
645
|
+
window.addEventListener('online', this.handleNetworkOnline);
|
|
646
|
+
window.addEventListener('offline', this.handleNetworkOffline);
|
|
647
|
+
}
|
|
648
|
+
this.webex.internal.mercury.on('offline', function () {
|
|
649
|
+
_this3.handleMercuryOffline();
|
|
650
|
+
});
|
|
651
|
+
this.webex.internal.mercury.on('online', function () {
|
|
652
|
+
_this3.handleMercuryOnline();
|
|
653
|
+
});
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
/**
|
|
657
|
+
* Fetches countryCode and region of the client.
|
|
658
|
+
*/
|
|
659
|
+
}, {
|
|
660
|
+
key: "getClientRegionInfo",
|
|
661
|
+
value: (function () {
|
|
662
|
+
var _getClientRegionInfo = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee0() {
|
|
663
|
+
var _this4 = this;
|
|
664
|
+
var abort, regionInfo, _response$headers, _response$headers$tra, _response$headers2, response, clientRegionInfo, _t4;
|
|
665
|
+
return _regenerator.default.wrap(function (_context1) {
|
|
666
|
+
while (1) switch (_context1.prev = _context1.next) {
|
|
667
|
+
case 0:
|
|
668
|
+
_Logger.default.info(_constants.METHOD_START_MESSAGE, {
|
|
669
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
670
|
+
method: _constants2.METHODS.GET_CLIENT_REGION_INFO
|
|
671
|
+
});
|
|
672
|
+
regionInfo = {};
|
|
673
|
+
_context1.prev = 1;
|
|
674
|
+
_context1.next = 2;
|
|
675
|
+
return this.webex.request({
|
|
676
|
+
uri: "".concat(_constants2.DISCOVERY_URL),
|
|
677
|
+
method: _types3.HTTP_METHODS.GET,
|
|
678
|
+
addAuthHeader: false,
|
|
679
|
+
headers: (0, _defineProperty2.default)({}, _constants2.SPARK_USER_AGENT, null)
|
|
680
|
+
});
|
|
681
|
+
case 2:
|
|
682
|
+
response = _context1.sent;
|
|
683
|
+
clientRegionInfo = response.body;
|
|
684
|
+
regionInfo.clientRegion = (clientRegionInfo === null || clientRegionInfo === void 0 ? void 0 : clientRegionInfo.clientRegion) || '';
|
|
685
|
+
regionInfo.countryCode = (clientRegionInfo === null || clientRegionInfo === void 0 ? void 0 : clientRegionInfo.countryCode) || '';
|
|
686
|
+
_Logger.default.log("Successfully fetched Client region info: ".concat(regionInfo.clientRegion, ", countryCode: ").concat(regionInfo.countryCode, ", and response trackingid: ").concat(response === null || response === void 0 ? void 0 : (_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.trackingid), {
|
|
687
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
688
|
+
method: _constants2.METHODS.GET_CLIENT_REGION_INFO
|
|
689
|
+
});
|
|
690
|
+
this.metricManager.submitRegionInfoMetric(_types5.METRIC_EVENT.MOBIUS_DISCOVERY, _types5.MOBIUS_SERVER_ACTION.REGION_INFO, _types5.METRIC_TYPE.BEHAVIORAL, this.mobiusHost, clientRegionInfo.clientRegion, clientRegionInfo.countryCode, (_response$headers$tra = response === null || response === void 0 ? void 0 : (_response$headers2 = response.headers) === null || _response$headers2 === void 0 ? void 0 : _response$headers2.trackingid) !== null && _response$headers$tra !== void 0 ? _response$headers$tra : '');
|
|
691
|
+
_context1.next = 6;
|
|
692
|
+
break;
|
|
693
|
+
case 3:
|
|
694
|
+
_context1.prev = 3;
|
|
695
|
+
_t4 = _context1["catch"](1);
|
|
696
|
+
_Logger.default.error("Failed to get client region info: ".concat((0, _stringify.default)(_t4)), {
|
|
697
|
+
method: _constants2.METHODS.GET_CLIENT_REGION_INFO,
|
|
698
|
+
file: _constants2.CALLING_CLIENT_FILE
|
|
699
|
+
});
|
|
700
|
+
|
|
701
|
+
// eslint-disable-next-line no-await-in-loop
|
|
702
|
+
_context1.next = 4;
|
|
703
|
+
return (0, _Utils.handleCallingClientErrors)(_t4, function (clientError) {
|
|
704
|
+
var _headers$trackingId, _headers2;
|
|
705
|
+
_this4.metricManager.submitRegistrationMetric(_types5.METRIC_EVENT.REGISTRATION_ERROR, _types5.REG_ACTION.REGISTER, _types5.METRIC_TYPE.BEHAVIORAL, _constants2.GET_MOBIUS_SERVERS_UTIL, 'UNKNOWN', (_headers$trackingId = (_headers2 = _t4.headers) === null || _headers2 === void 0 ? void 0 : _headers2.trackingId) !== null && _headers$trackingId !== void 0 ? _headers$trackingId : '', undefined, clientError);
|
|
706
|
+
_this4.emit(_types2.CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);
|
|
707
|
+
}, {
|
|
708
|
+
method: _constants2.GET_MOBIUS_SERVERS_UTIL,
|
|
709
|
+
file: _constants2.CALLING_CLIENT_FILE
|
|
710
|
+
});
|
|
711
|
+
case 4:
|
|
712
|
+
abort = _context1.sent;
|
|
713
|
+
regionInfo.clientRegion = '';
|
|
714
|
+
regionInfo.countryCode = '';
|
|
715
|
+
if (!abort) {
|
|
716
|
+
_context1.next = 6;
|
|
717
|
+
break;
|
|
718
|
+
}
|
|
719
|
+
_context1.next = 5;
|
|
720
|
+
return (0, _Utils.uploadLogs)();
|
|
721
|
+
case 5:
|
|
722
|
+
return _context1.abrupt("return", regionInfo);
|
|
723
|
+
case 6:
|
|
724
|
+
return _context1.abrupt("return", regionInfo);
|
|
725
|
+
case 7:
|
|
726
|
+
case "end":
|
|
727
|
+
return _context1.stop();
|
|
728
|
+
}
|
|
729
|
+
}, _callee0, this, [[1, 3]]);
|
|
730
|
+
}));
|
|
731
|
+
function getClientRegionInfo() {
|
|
732
|
+
return _getClientRegionInfo.apply(this, arguments);
|
|
733
|
+
}
|
|
734
|
+
return getClientRegionInfo;
|
|
735
|
+
}()
|
|
736
|
+
/**
|
|
737
|
+
* Local method for finding the mobius servers.
|
|
738
|
+
*/
|
|
739
|
+
)
|
|
740
|
+
}, {
|
|
741
|
+
key: "getMobiusServers",
|
|
742
|
+
value: (function () {
|
|
743
|
+
var _getMobiusServers = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee1() {
|
|
744
|
+
var _this$sdkConfig5,
|
|
745
|
+
_this$sdkConfig5$disc,
|
|
746
|
+
_this$sdkConfig6,
|
|
747
|
+
_this$sdkConfig6$disc,
|
|
748
|
+
_this5 = this;
|
|
749
|
+
var useDefault, clientRegion, countryCode, _this$sdkConfig7, _this$sdkConfig7$disc, _this$sdkConfig8, _this$sdkConfig8$disc, _this$webex$internal$, regionInfo, _iterator2, _step2, _loop2, _ret, _t6;
|
|
750
|
+
return _regenerator.default.wrap(function (_context11) {
|
|
751
|
+
while (1) switch (_context11.prev = _context11.next) {
|
|
752
|
+
case 0:
|
|
753
|
+
_Logger.default.info(_constants.METHOD_START_MESSAGE, {
|
|
754
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
755
|
+
method: _constants2.METHODS.GET_MOBIUS_SERVERS
|
|
756
|
+
});
|
|
757
|
+
/* Following operations are performed in a synchronous way ->
|
|
758
|
+
1. Get RegionInfo
|
|
759
|
+
2. Get Mobius Server with that RegionInfo
|
|
760
|
+
3. Check whether Mobius server was found without any error
|
|
761
|
+
4. If there is error , we don't need to send registration
|
|
762
|
+
5. Otherwise send registration
|
|
763
|
+
*/
|
|
764
|
+
useDefault = false;
|
|
765
|
+
if (!((_this$sdkConfig5 = this.sdkConfig) !== null && _this$sdkConfig5 !== void 0 && (_this$sdkConfig5$disc = _this$sdkConfig5.discovery) !== null && _this$sdkConfig5$disc !== void 0 && _this$sdkConfig5$disc.country && (_this$sdkConfig6 = this.sdkConfig) !== null && _this$sdkConfig6 !== void 0 && (_this$sdkConfig6$disc = _this$sdkConfig6.discovery) !== null && _this$sdkConfig6$disc !== void 0 && _this$sdkConfig6$disc.region)) {
|
|
766
|
+
_context11.next = 1;
|
|
767
|
+
break;
|
|
768
|
+
}
|
|
769
|
+
_Logger.default.log('Updating region and country from the SDK config', {
|
|
770
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
771
|
+
method: _constants2.GET_MOBIUS_SERVERS_UTIL
|
|
772
|
+
});
|
|
773
|
+
clientRegion = (_this$sdkConfig7 = this.sdkConfig) === null || _this$sdkConfig7 === void 0 ? void 0 : (_this$sdkConfig7$disc = _this$sdkConfig7.discovery) === null || _this$sdkConfig7$disc === void 0 ? void 0 : _this$sdkConfig7$disc.region;
|
|
774
|
+
countryCode = (_this$sdkConfig8 = this.sdkConfig) === null || _this$sdkConfig8 === void 0 ? void 0 : (_this$sdkConfig8$disc = _this$sdkConfig8.discovery) === null || _this$sdkConfig8$disc === void 0 ? void 0 : _this$sdkConfig8$disc.country;
|
|
775
|
+
this.mobiusHost = ((_this$webex$internal$ = this.webex.internal.services._serviceUrls) === null || _this$webex$internal$ === void 0 ? void 0 : _this$webex$internal$.mobius) || this.webex.internal.services.get(this.webex.internal.services._activeServices.mobius);
|
|
776
|
+
_context11.next = 3;
|
|
777
|
+
break;
|
|
778
|
+
case 1:
|
|
779
|
+
_Logger.default.log('Updating region and country through Region discovery', {
|
|
780
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
781
|
+
method: _constants2.GET_MOBIUS_SERVERS_UTIL
|
|
782
|
+
});
|
|
783
|
+
_context11.next = 2;
|
|
784
|
+
return this.getClientRegionInfo();
|
|
785
|
+
case 2:
|
|
786
|
+
regionInfo = _context11.sent;
|
|
787
|
+
clientRegion = regionInfo.clientRegion;
|
|
788
|
+
countryCode = regionInfo.countryCode;
|
|
789
|
+
case 3:
|
|
790
|
+
if (!(clientRegion && countryCode)) {
|
|
791
|
+
_context11.next = 12;
|
|
792
|
+
break;
|
|
793
|
+
}
|
|
794
|
+
_Logger.default.log("Found Region: ".concat(clientRegion, " and country: ").concat(countryCode, ", going to fetch Mobius server"), {
|
|
795
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
796
|
+
method: _constants2.GET_MOBIUS_SERVERS_UTIL
|
|
797
|
+
});
|
|
798
|
+
_iterator2 = _createForOfIteratorHelper(this.mobiusClusters);
|
|
799
|
+
_context11.prev = 4;
|
|
800
|
+
_loop2 = /*#__PURE__*/_regenerator.default.mark(function _loop2() {
|
|
801
|
+
var mobius, _response$headers3, _response$headers$tra2, _response$headers4, response, mobiusServers, mobiusUris, abort, _t5;
|
|
802
|
+
return _regenerator.default.wrap(function (_context10) {
|
|
803
|
+
while (1) switch (_context10.prev = _context10.next) {
|
|
804
|
+
case 0:
|
|
805
|
+
mobius = _step2.value;
|
|
806
|
+
if (mobius.host) {
|
|
807
|
+
_this5.mobiusHost = "https://".concat(mobius.host).concat(_constants2.API_V1);
|
|
808
|
+
} else {
|
|
809
|
+
_this5.mobiusHost = mobius;
|
|
810
|
+
}
|
|
811
|
+
_context10.prev = 1;
|
|
812
|
+
_context10.next = 2;
|
|
813
|
+
return _this5.webex.request({
|
|
814
|
+
uri: "".concat(_this5.mobiusHost).concat(_constants2.URL_ENDPOINT, "?regionCode=").concat(clientRegion, "&countryCode=").concat(countryCode),
|
|
815
|
+
method: _types3.HTTP_METHODS.GET,
|
|
816
|
+
headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, _this5.webex.internal.device.url), _constants2.SPARK_USER_AGENT, _constants2.CALLING_USER_AGENT),
|
|
817
|
+
service: _types3.ALLOWED_SERVICES.MOBIUS
|
|
818
|
+
});
|
|
819
|
+
case 2:
|
|
820
|
+
response = _context10.sent;
|
|
821
|
+
_Logger.default.log("Mobius Server found for the region. Response trackingId: ".concat(response === null || response === void 0 ? void 0 : (_response$headers3 = response.headers) === null || _response$headers3 === void 0 ? void 0 : _response$headers3.trackingid), {
|
|
822
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
823
|
+
method: _constants2.GET_MOBIUS_SERVERS_UTIL
|
|
824
|
+
});
|
|
825
|
+
mobiusServers = response.body; // Metrics for mobius servers
|
|
826
|
+
_this5.metricManager.submitMobiusServersMetric(_types5.METRIC_EVENT.MOBIUS_DISCOVERY, _types5.MOBIUS_SERVER_ACTION.MOBIUS_SERVERS, _types5.METRIC_TYPE.BEHAVIORAL, mobiusServers, (_response$headers$tra2 = response === null || response === void 0 ? void 0 : (_response$headers4 = response.headers) === null || _response$headers4 === void 0 ? void 0 : _response$headers4.trackingid) !== null && _response$headers$tra2 !== void 0 ? _response$headers$tra2 : '');
|
|
827
|
+
|
|
828
|
+
/* update arrays of Mobius Uris. */
|
|
829
|
+
mobiusUris = (0, _Utils.filterMobiusUris)(mobiusServers, _this5.mobiusHost);
|
|
830
|
+
_this5.primaryMobiusUris = mobiusUris.primary;
|
|
831
|
+
_this5.backupMobiusUris = mobiusUris.backup;
|
|
832
|
+
_this5.primaryWssMobiusUris = mobiusUris.primaryWss;
|
|
833
|
+
_this5.backupWssMobiusUris = mobiusUris.backupWss;
|
|
834
|
+
_Logger.default.log("Final list of Mobius Servers, primary: ".concat(mobiusUris.primary, " and backup: ").concat(mobiusUris.backup), {
|
|
835
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
836
|
+
method: _constants2.GET_MOBIUS_SERVERS_UTIL
|
|
837
|
+
});
|
|
838
|
+
return _context10.abrupt("return", 0);
|
|
839
|
+
case 3:
|
|
840
|
+
_context10.prev = 3;
|
|
841
|
+
_t5 = _context10["catch"](1);
|
|
842
|
+
_Logger.default.error("Failed to get Mobius servers: ".concat((0, _stringify.default)(_t5)), {
|
|
843
|
+
method: _constants2.METHODS.GET_MOBIUS_SERVERS,
|
|
844
|
+
file: _constants2.CALLING_CLIENT_FILE
|
|
845
|
+
});
|
|
846
|
+
|
|
847
|
+
// eslint-disable-next-line no-await-in-loop
|
|
848
|
+
_context10.next = 4;
|
|
849
|
+
return (0, _Utils.handleCallingClientErrors)(_t5, function (clientError) {
|
|
850
|
+
var _headers$trackingId2, _headers4;
|
|
851
|
+
_this5.metricManager.submitRegistrationMetric(_types5.METRIC_EVENT.REGISTRATION_ERROR, _types5.REG_ACTION.REGISTER, _types5.METRIC_TYPE.BEHAVIORAL, _constants2.GET_MOBIUS_SERVERS_UTIL, 'UNKNOWN', (_headers$trackingId2 = (_headers4 = _t5.headers) === null || _headers4 === void 0 ? void 0 : _headers4.trackingId) !== null && _headers$trackingId2 !== void 0 ? _headers$trackingId2 : '', undefined, clientError);
|
|
852
|
+
_this5.emit(_types2.CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);
|
|
853
|
+
}, {
|
|
854
|
+
method: _constants2.GET_MOBIUS_SERVERS_UTIL,
|
|
855
|
+
file: _constants2.CALLING_CLIENT_FILE
|
|
856
|
+
});
|
|
857
|
+
case 4:
|
|
858
|
+
abort = _context10.sent;
|
|
859
|
+
if (!abort) {
|
|
860
|
+
_context10.next = 6;
|
|
861
|
+
break;
|
|
862
|
+
}
|
|
863
|
+
useDefault = true;
|
|
864
|
+
// eslint-disable-next-line no-await-in-loop
|
|
865
|
+
_context10.next = 5;
|
|
866
|
+
return (0, _Utils.uploadLogs)();
|
|
867
|
+
case 5:
|
|
868
|
+
return _context10.abrupt("return", 0);
|
|
869
|
+
case 6:
|
|
870
|
+
case "end":
|
|
871
|
+
return _context10.stop();
|
|
872
|
+
}
|
|
873
|
+
}, _loop2, null, [[1, 3]]);
|
|
874
|
+
});
|
|
875
|
+
_iterator2.s();
|
|
876
|
+
case 5:
|
|
877
|
+
if ((_step2 = _iterator2.n()).done) {
|
|
878
|
+
_context11.next = 8;
|
|
879
|
+
break;
|
|
880
|
+
}
|
|
881
|
+
return _context11.delegateYield(_loop2(), "t0", 6);
|
|
882
|
+
case 6:
|
|
883
|
+
_ret = _context11.t0;
|
|
884
|
+
if (!(_ret === 0)) {
|
|
885
|
+
_context11.next = 7;
|
|
886
|
+
break;
|
|
887
|
+
}
|
|
888
|
+
return _context11.abrupt("continue", 8);
|
|
889
|
+
case 7:
|
|
890
|
+
_context11.next = 5;
|
|
891
|
+
break;
|
|
892
|
+
case 8:
|
|
893
|
+
_context11.next = 10;
|
|
894
|
+
break;
|
|
895
|
+
case 9:
|
|
896
|
+
_context11.prev = 9;
|
|
897
|
+
_t6 = _context11["catch"](4);
|
|
898
|
+
_iterator2.e(_t6);
|
|
899
|
+
case 10:
|
|
900
|
+
_context11.prev = 10;
|
|
901
|
+
_iterator2.f();
|
|
902
|
+
return _context11.finish(10);
|
|
903
|
+
case 11:
|
|
904
|
+
_context11.next = 13;
|
|
905
|
+
break;
|
|
906
|
+
case 12:
|
|
907
|
+
/* Setting this to true because region info is possibly undefined */
|
|
908
|
+
useDefault = true;
|
|
909
|
+
case 13:
|
|
910
|
+
/* Use a default URL if Mobius discovery fails either because of region info failure
|
|
911
|
+
* or because the discovered Mobius couldn't be reached
|
|
912
|
+
*/
|
|
913
|
+
|
|
914
|
+
if (useDefault) {
|
|
915
|
+
_Logger.default.warn("Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers", {
|
|
916
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
917
|
+
method: _constants2.GET_MOBIUS_SERVERS_UTIL
|
|
918
|
+
});
|
|
919
|
+
this.mobiusHost = "https://".concat(this.mobiusClusters[0].host).concat(_constants2.API_V1);
|
|
920
|
+
this.primaryMobiusUris = ["".concat(this.mobiusHost).concat(_constants2.URL_ENDPOINT)];
|
|
921
|
+
}
|
|
922
|
+
case 14:
|
|
923
|
+
case "end":
|
|
924
|
+
return _context11.stop();
|
|
925
|
+
}
|
|
926
|
+
}, _callee1, this, [[4, 9, 10, 11]]);
|
|
927
|
+
}));
|
|
928
|
+
function getMobiusServers() {
|
|
929
|
+
return _getMobiusServers.apply(this, arguments);
|
|
930
|
+
}
|
|
931
|
+
return getMobiusServers;
|
|
932
|
+
}()
|
|
933
|
+
/**
|
|
934
|
+
* Connects to the Mobius WebSocket using WSS URIs discovered during Mobius server discovery.
|
|
935
|
+
* Attempts primary WSS URIs first, then falls back to backup WSS URIs.
|
|
936
|
+
* If all attempts fail, logs a warning and continues without a socket connection.
|
|
937
|
+
*/
|
|
938
|
+
)
|
|
939
|
+
}, {
|
|
940
|
+
key: "connectToMobiusSocket",
|
|
941
|
+
value: (function () {
|
|
942
|
+
var _connectToMobiusSocket = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee10() {
|
|
943
|
+
var loggerContext, _iterator3, _step3, wssUri, _t7, _t8;
|
|
944
|
+
return _regenerator.default.wrap(function (_context12) {
|
|
945
|
+
while (1) switch (_context12.prev = _context12.next) {
|
|
946
|
+
case 0:
|
|
947
|
+
loggerContext = {
|
|
948
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
949
|
+
method: _constants2.METHODS.CONNECT_TO_MOBIUS_SOCKET
|
|
950
|
+
};
|
|
951
|
+
_Logger.default.info(_constants.METHOD_START_MESSAGE, loggerContext);
|
|
952
|
+
if (this.primaryWssMobiusUris.length) {
|
|
953
|
+
_context12.next = 1;
|
|
954
|
+
break;
|
|
955
|
+
}
|
|
956
|
+
_Logger.default.warn('No WSS URIs available from Mobius discovery for primary, skipping socket connection', loggerContext);
|
|
957
|
+
return _context12.abrupt("return");
|
|
958
|
+
case 1:
|
|
959
|
+
// Attempt to establish the socket connection with mobius if primary wss urls are present
|
|
960
|
+
// If wss url is not present for primary/backup, registration will be attempted with http even when feature flag is enabled for mobius socket
|
|
961
|
+
_iterator3 = _createForOfIteratorHelper(this.primaryWssMobiusUris);
|
|
962
|
+
_context12.prev = 2;
|
|
963
|
+
_iterator3.s();
|
|
964
|
+
case 3:
|
|
965
|
+
if ((_step3 = _iterator3.n()).done) {
|
|
966
|
+
_context12.next = 8;
|
|
967
|
+
break;
|
|
968
|
+
}
|
|
969
|
+
wssUri = _step3.value;
|
|
970
|
+
_context12.prev = 4;
|
|
971
|
+
_Logger.default.log("Trying primary WSS URI: ".concat(wssUri), loggerContext);
|
|
972
|
+
// eslint-disable-next-line no-await-in-loop
|
|
973
|
+
_context12.next = 5;
|
|
974
|
+
return this.apiRequest.connectToMobiusSocket(wssUri);
|
|
975
|
+
case 5:
|
|
976
|
+
_Logger.default.log("Successfully connected to Mobius socket on primary WSS URI: ".concat(wssUri), loggerContext);
|
|
977
|
+
return _context12.abrupt("return");
|
|
978
|
+
case 6:
|
|
979
|
+
_context12.prev = 6;
|
|
980
|
+
_t7 = _context12["catch"](4);
|
|
981
|
+
_Logger.default.warn("Primary WSS URI connection failed for ".concat(wssUri, ": ").concat(_t7), loggerContext);
|
|
982
|
+
case 7:
|
|
983
|
+
_context12.next = 3;
|
|
984
|
+
break;
|
|
985
|
+
case 8:
|
|
986
|
+
_context12.next = 10;
|
|
987
|
+
break;
|
|
988
|
+
case 9:
|
|
989
|
+
_context12.prev = 9;
|
|
990
|
+
_t8 = _context12["catch"](2);
|
|
991
|
+
_iterator3.e(_t8);
|
|
992
|
+
case 10:
|
|
993
|
+
_context12.prev = 10;
|
|
994
|
+
_iterator3.f();
|
|
995
|
+
return _context12.finish(10);
|
|
996
|
+
case 11:
|
|
997
|
+
_Logger.default.warn('All primary WSS URI connection attempts failed', loggerContext);
|
|
998
|
+
case 12:
|
|
999
|
+
case "end":
|
|
1000
|
+
return _context12.stop();
|
|
1001
|
+
}
|
|
1002
|
+
}, _callee10, this, [[2, 9, 10, 11], [4, 6]]);
|
|
1003
|
+
}));
|
|
1004
|
+
function connectToMobiusSocket() {
|
|
1005
|
+
return _connectToMobiusSocket.apply(this, arguments);
|
|
1006
|
+
}
|
|
1007
|
+
return connectToMobiusSocket;
|
|
1008
|
+
}())
|
|
1009
|
+
}, {
|
|
1010
|
+
key: "registerCallsClearedListener",
|
|
1011
|
+
value:
|
|
1012
|
+
/**
|
|
1013
|
+
* Registers a listener/handler for ALL_CALLS_CLEARED
|
|
1014
|
+
* event emitted by callManager when all the calls
|
|
1015
|
+
* present on sdk are cleaned up.
|
|
1016
|
+
*/
|
|
1017
|
+
function registerCallsClearedListener() {
|
|
1018
|
+
_Logger.default.info(_constants.METHOD_START_MESSAGE, {
|
|
1019
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
1020
|
+
method: _constants2.METHODS.REGISTER_CALLS_CLEARED_LISTENER
|
|
1021
|
+
});
|
|
1022
|
+
this.callManager.on(_types2.CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED, this.callsClearedHandler);
|
|
1023
|
+
}
|
|
1024
|
+
}, {
|
|
1025
|
+
key: "getLoggingLevel",
|
|
1026
|
+
value:
|
|
1027
|
+
/**
|
|
1028
|
+
* To get the current log Level.
|
|
1029
|
+
* @ignore
|
|
1030
|
+
*/
|
|
1031
|
+
function getLoggingLevel() {
|
|
1032
|
+
return _Logger.default.getLogLevel();
|
|
1033
|
+
}
|
|
1034
|
+
|
|
1035
|
+
/**
|
|
1036
|
+
* To return the `sdkConnector` instance that was used during sdk initialisation.
|
|
1037
|
+
* @ignore
|
|
1038
|
+
*/
|
|
1039
|
+
}, {
|
|
1040
|
+
key: "getSDKConnector",
|
|
1041
|
+
value: function getSDKConnector() {
|
|
1042
|
+
return this.sdkConnector;
|
|
1043
|
+
}
|
|
1044
|
+
}, {
|
|
1045
|
+
key: "registerSessionsListener",
|
|
1046
|
+
value: function registerSessionsListener() {
|
|
1047
|
+
var _this6 = this;
|
|
1048
|
+
_Logger.default.info(_constants.METHOD_START_MESSAGE, {
|
|
1049
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
1050
|
+
method: _constants2.METHODS.REGISTER_SESSIONS_LISTENER
|
|
1051
|
+
});
|
|
1052
|
+
this.sdkConnector.registerListener(_types2.MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE, /*#__PURE__*/function () {
|
|
1053
|
+
var _ref7 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee11(event) {
|
|
1054
|
+
var sessionArr, i;
|
|
1055
|
+
return _regenerator.default.wrap(function (_context13) {
|
|
1056
|
+
while (1) switch (_context13.prev = _context13.next) {
|
|
1057
|
+
case 0:
|
|
1058
|
+
if (!(event && event.data.userSessions.userSessions)) {
|
|
1059
|
+
_context13.next = 2;
|
|
1060
|
+
break;
|
|
1061
|
+
}
|
|
1062
|
+
sessionArr = event === null || event === void 0 ? void 0 : event.data.userSessions.userSessions;
|
|
1063
|
+
if (!(sessionArr.length === 1)) {
|
|
1064
|
+
_context13.next = 1;
|
|
1065
|
+
break;
|
|
1066
|
+
}
|
|
1067
|
+
if (!(sessionArr[0].sessionType !== _types2.SessionType.WEBEX_CALLING)) {
|
|
1068
|
+
_context13.next = 1;
|
|
1069
|
+
break;
|
|
1070
|
+
}
|
|
1071
|
+
return _context13.abrupt("return");
|
|
1072
|
+
case 1:
|
|
1073
|
+
for (i = 0; i < sessionArr.length; i += 1) {
|
|
1074
|
+
if (sessionArr[i].sessionType !== _types2.SessionType.WEBEX_CALLING) {
|
|
1075
|
+
sessionArr.splice(i, 1);
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
_this6.emit(_types2.CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, event);
|
|
1079
|
+
case 2:
|
|
1080
|
+
case "end":
|
|
1081
|
+
return _context13.stop();
|
|
1082
|
+
}
|
|
1083
|
+
}, _callee11);
|
|
1084
|
+
}));
|
|
1085
|
+
return function (_x2) {
|
|
1086
|
+
return _ref7.apply(this, arguments);
|
|
1087
|
+
};
|
|
1088
|
+
}());
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1091
|
+
/**
|
|
1092
|
+
* Creates line object inside calling client per user
|
|
1093
|
+
* NOTE: currently multiple lines are not supported
|
|
1094
|
+
*/
|
|
1095
|
+
}, {
|
|
1096
|
+
key: "createLine",
|
|
1097
|
+
value: (function () {
|
|
1098
|
+
var _createLine = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee12() {
|
|
1099
|
+
var _this$sdkConfig9;
|
|
1100
|
+
var socketEnabled, primaryUris, backupUris, line;
|
|
1101
|
+
return _regenerator.default.wrap(function (_context14) {
|
|
1102
|
+
while (1) switch (_context14.prev = _context14.next) {
|
|
1103
|
+
case 0:
|
|
1104
|
+
_Logger.default.info(_constants.METHOD_START_MESSAGE, {
|
|
1105
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
1106
|
+
method: _constants2.METHODS.CREATE_LINE
|
|
1107
|
+
});
|
|
1108
|
+
// When the Mobius socket is enabled, fall back to the HTTP URIs per group when that
|
|
1109
|
+
// group has no WSS URL, so registration is still attempted (primary and backup are
|
|
1110
|
+
// resolved independently). When the socket is disabled, always use the HTTP URIs.
|
|
1111
|
+
socketEnabled = this.apiRequest.isSocketEnabled();
|
|
1112
|
+
primaryUris = socketEnabled && this.primaryWssMobiusUris.length ? (0, _Utils.normalizeMobiusUris)(this.primaryWssMobiusUris) : this.primaryMobiusUris;
|
|
1113
|
+
backupUris = socketEnabled && this.backupWssMobiusUris.length ? (0, _Utils.normalizeMobiusUris)(this.backupWssMobiusUris) : this.backupMobiusUris;
|
|
1114
|
+
line = new _line.default(this.webex.internal.device.userId, this.webex.internal.device.url, this.mutex, primaryUris, backupUris, this.getLoggingLevel(), this.serviceData, (_this$sdkConfig9 = this.sdkConfig) === null || _this$sdkConfig9 === void 0 ? void 0 : _this$sdkConfig9.jwe);
|
|
1115
|
+
this.lineDict[line.lineId] = line;
|
|
1116
|
+
case 1:
|
|
1117
|
+
case "end":
|
|
1118
|
+
return _context14.stop();
|
|
1119
|
+
}
|
|
1120
|
+
}, _callee12, this);
|
|
1121
|
+
}));
|
|
1122
|
+
function createLine() {
|
|
1123
|
+
return _createLine.apply(this, arguments);
|
|
1124
|
+
}
|
|
1125
|
+
return createLine;
|
|
1126
|
+
}()
|
|
1127
|
+
/**
|
|
1128
|
+
* Retrieves details of all the Line objects belonging to a User
|
|
1129
|
+
* NOTE: currently multiple lines are not supported
|
|
1130
|
+
*/
|
|
1131
|
+
)
|
|
1132
|
+
}, {
|
|
1133
|
+
key: "getLines",
|
|
1134
|
+
value: function getLines() {
|
|
1135
|
+
return this.lineDict;
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1138
|
+
/**
|
|
1139
|
+
* Fetches the list of devices for a given user from Mobius.
|
|
1140
|
+
*/
|
|
1141
|
+
}, {
|
|
1142
|
+
key: "getDevices",
|
|
1143
|
+
value: (function () {
|
|
1144
|
+
var _getDevices = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee13(userId) {
|
|
1145
|
+
var userid, mobiusUrls, finalError, _iterator4, _step4, mobiusUrl, normalizedMobiusUrl, uri, _body$devices, response, body, _t9, _t0;
|
|
1146
|
+
return _regenerator.default.wrap(function (_context15) {
|
|
1147
|
+
while (1) switch (_context15.prev = _context15.next) {
|
|
1148
|
+
case 0:
|
|
1149
|
+
userid = userId || this.webex.internal.device.userId;
|
|
1150
|
+
if (userid) {
|
|
1151
|
+
_context15.next = 1;
|
|
1152
|
+
break;
|
|
1153
|
+
}
|
|
1154
|
+
throw new Error('userId is required to fetch devices');
|
|
1155
|
+
case 1:
|
|
1156
|
+
_Logger.default.info(_constants.METHOD_START_MESSAGE, {
|
|
1157
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
1158
|
+
method: _constants2.METHODS.GET_DEVICES
|
|
1159
|
+
});
|
|
1160
|
+
mobiusUrls = [].concat((0, _toConsumableArray2.default)(this.primaryMobiusUris), (0, _toConsumableArray2.default)(this.backupMobiusUris));
|
|
1161
|
+
if (!(mobiusUrls.length === 0)) {
|
|
1162
|
+
_context15.next = 2;
|
|
1163
|
+
break;
|
|
1164
|
+
}
|
|
1165
|
+
throw new Error('Mobius URLs are not available');
|
|
1166
|
+
case 2:
|
|
1167
|
+
_iterator4 = _createForOfIteratorHelper(mobiusUrls);
|
|
1168
|
+
_context15.prev = 3;
|
|
1169
|
+
_iterator4.s();
|
|
1170
|
+
case 4:
|
|
1171
|
+
if ((_step4 = _iterator4.n()).done) {
|
|
1172
|
+
_context15.next = 10;
|
|
1173
|
+
break;
|
|
1174
|
+
}
|
|
1175
|
+
mobiusUrl = _step4.value;
|
|
1176
|
+
normalizedMobiusUrl = mobiusUrl.replace(/\/+$/, '/');
|
|
1177
|
+
uri = "".concat(normalizedMobiusUrl).concat(_constants2.DEVICES_ENDPOINT_RESOURCE, "?userid=").concat(encodeURIComponent(userid));
|
|
1178
|
+
_context15.prev = 5;
|
|
1179
|
+
_context15.next = 6;
|
|
1180
|
+
return this.webex.request({
|
|
1181
|
+
uri: uri,
|
|
1182
|
+
method: _types3.HTTP_METHODS.GET,
|
|
1183
|
+
service: _types3.ALLOWED_SERVICES.MOBIUS,
|
|
1184
|
+
headers: (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants2.CISCO_DEVICE_URL, this.webex.internal.device.url), _constants2.SPARK_USER_AGENT, _constants2.CALLING_USER_AGENT)
|
|
1185
|
+
});
|
|
1186
|
+
case 6:
|
|
1187
|
+
response = _context15.sent;
|
|
1188
|
+
if (!(response.statusCode !== 200)) {
|
|
1189
|
+
_context15.next = 7;
|
|
1190
|
+
break;
|
|
1191
|
+
}
|
|
1192
|
+
throw new Error("API call failed with ".concat(response.statusCode));
|
|
1193
|
+
case 7:
|
|
1194
|
+
body = response.body; // Hydrate registration deviceInfo for deregister/restore flows
|
|
1195
|
+
(0, _values.default)(this.lineDict)[0].registration.setDeviceInfo(body);
|
|
1196
|
+
(0, _values.default)(this.lineDict)[0].registration.setActiveMobiusUrl(normalizedMobiusUrl);
|
|
1197
|
+
return _context15.abrupt("return", (_body$devices = body.devices) !== null && _body$devices !== void 0 ? _body$devices : []);
|
|
1198
|
+
case 8:
|
|
1199
|
+
_context15.prev = 8;
|
|
1200
|
+
_t9 = _context15["catch"](5);
|
|
1201
|
+
finalError = _t9;
|
|
1202
|
+
case 9:
|
|
1203
|
+
_context15.next = 4;
|
|
1204
|
+
break;
|
|
1205
|
+
case 10:
|
|
1206
|
+
_context15.next = 12;
|
|
1207
|
+
break;
|
|
1208
|
+
case 11:
|
|
1209
|
+
_context15.prev = 11;
|
|
1210
|
+
_t0 = _context15["catch"](3);
|
|
1211
|
+
_iterator4.e(_t0);
|
|
1212
|
+
case 12:
|
|
1213
|
+
_context15.prev = 12;
|
|
1214
|
+
_iterator4.f();
|
|
1215
|
+
return _context15.finish(12);
|
|
1216
|
+
case 13:
|
|
1217
|
+
_Logger.default.error("Failed to fetch devices for userId ".concat(userId, ": ").concat((0, _stringify.default)(finalError)), {
|
|
1218
|
+
file: _constants2.CALLING_CLIENT_FILE,
|
|
1219
|
+
method: _constants2.METHODS.GET_DEVICES
|
|
1220
|
+
});
|
|
1221
|
+
throw finalError;
|
|
1222
|
+
case 14:
|
|
1223
|
+
case "end":
|
|
1224
|
+
return _context15.stop();
|
|
1225
|
+
}
|
|
1226
|
+
}, _callee13, this, [[3, 11, 12, 13], [5, 8]]);
|
|
1227
|
+
}));
|
|
1228
|
+
function getDevices(_x3) {
|
|
1229
|
+
return _getDevices.apply(this, arguments);
|
|
1230
|
+
}
|
|
1231
|
+
return getDevices;
|
|
1232
|
+
}()
|
|
1233
|
+
/**
|
|
1234
|
+
* Retrieves call objects for all the active calls present in the client
|
|
1235
|
+
*/
|
|
1236
|
+
)
|
|
1237
|
+
}, {
|
|
1238
|
+
key: "getActiveCalls",
|
|
1239
|
+
value: function getActiveCalls() {
|
|
1240
|
+
var activeCalls = {};
|
|
1241
|
+
var calls = this.callManager.getActiveCalls();
|
|
1242
|
+
(0, _keys.default)(calls).forEach(function (correlationId) {
|
|
1243
|
+
var call = calls[correlationId];
|
|
1244
|
+
if (!activeCalls[call.lineId]) {
|
|
1245
|
+
activeCalls[call.lineId] = [];
|
|
1246
|
+
}
|
|
1247
|
+
activeCalls[call.lineId].push(call);
|
|
1248
|
+
});
|
|
1249
|
+
return activeCalls;
|
|
1250
|
+
}
|
|
1251
|
+
|
|
1252
|
+
/**
|
|
1253
|
+
* Retrieves call object for the connected call in the client
|
|
1254
|
+
*/
|
|
1255
|
+
}, {
|
|
1256
|
+
key: "getConnectedCall",
|
|
1257
|
+
value: function getConnectedCall() {
|
|
1258
|
+
var connectCall;
|
|
1259
|
+
var calls = this.callManager.getActiveCalls();
|
|
1260
|
+
(0, _keys.default)(calls).forEach(function (correlationId) {
|
|
1261
|
+
if (calls[correlationId].isConnected() && !calls[correlationId].isHeld()) {
|
|
1262
|
+
connectCall = calls[correlationId];
|
|
1263
|
+
}
|
|
1264
|
+
});
|
|
1265
|
+
return connectCall;
|
|
1266
|
+
}
|
|
1267
|
+
|
|
1268
|
+
/**
|
|
1269
|
+
* Indicates whether the Mobius WebSocket transport is currently connected.
|
|
1270
|
+
*
|
|
1271
|
+
* The `MOBIUS_SOCKET_CONNECTED` event is emitted during `init()`, so consumers that
|
|
1272
|
+
* subscribe afterwards may miss it; this lets them reconcile the current state. Returns
|
|
1273
|
+
* `false` when the WebSocket transport is not enabled.
|
|
1274
|
+
*/
|
|
1275
|
+
}, {
|
|
1276
|
+
key: "isMobiusSocketConnected",
|
|
1277
|
+
value: function isMobiusSocketConnected() {
|
|
1278
|
+
return this.apiRequest.isSocketEnabled() && this.apiRequest.isSocketConnected();
|
|
1279
|
+
}
|
|
1280
|
+
|
|
1281
|
+
/**
|
|
1282
|
+
* Uploads logs to help troubleshoot SDK issues.
|
|
1283
|
+
*
|
|
1284
|
+
* This method collects the current SDK logs including network requests, WebSocket
|
|
1285
|
+
* messages, and client-side events, then securely submits them to Webex's diagnostics
|
|
1286
|
+
* service. The returned tracking ID, feedbackID can be provided to Webex support for faster
|
|
1287
|
+
* issue resolution.
|
|
1288
|
+
* @returns Promise<UploadLogsResponse>
|
|
1289
|
+
* @throws Error
|
|
1290
|
+
*/
|
|
1291
|
+
}, {
|
|
1292
|
+
key: "uploadLogs",
|
|
1293
|
+
value: (function () {
|
|
1294
|
+
var _uploadLogs2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee14() {
|
|
1295
|
+
var result;
|
|
1296
|
+
return _regenerator.default.wrap(function (_context16) {
|
|
1297
|
+
while (1) switch (_context16.prev = _context16.next) {
|
|
1298
|
+
case 0:
|
|
1299
|
+
_context16.next = 1;
|
|
1300
|
+
return (0, _Utils.uploadLogs)({}, true);
|
|
1301
|
+
case 1:
|
|
1302
|
+
result = _context16.sent;
|
|
1303
|
+
if (result) {
|
|
1304
|
+
_context16.next = 2;
|
|
1305
|
+
break;
|
|
1306
|
+
}
|
|
1307
|
+
throw new Error('Failed to upload logs: No response received.');
|
|
1308
|
+
case 2:
|
|
1309
|
+
return _context16.abrupt("return", result);
|
|
1310
|
+
case 3:
|
|
1311
|
+
case "end":
|
|
1312
|
+
return _context16.stop();
|
|
1313
|
+
}
|
|
1314
|
+
}, _callee14);
|
|
1315
|
+
}));
|
|
1316
|
+
function uploadLogs() {
|
|
1317
|
+
return _uploadLogs2.apply(this, arguments);
|
|
1318
|
+
}
|
|
1319
|
+
return uploadLogs;
|
|
1320
|
+
}())
|
|
1321
|
+
}]);
|
|
1322
|
+
}(_impl.Eventing);
|
|
1323
|
+
/**
|
|
1324
|
+
* Create the `CallingClient` instance using the `webex` object and callingSdk `config`
|
|
1325
|
+
* @param webex - A webex instance.
|
|
1326
|
+
* @param config - Config to start the CallingClient with.
|
|
1327
|
+
*/
|
|
1328
|
+
var createClient = exports.createClient = /*#__PURE__*/function () {
|
|
1329
|
+
var _ref8 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee15(webex, config) {
|
|
1330
|
+
var callingClientInstance;
|
|
1331
|
+
return _regenerator.default.wrap(function (_context17) {
|
|
1332
|
+
while (1) switch (_context17.prev = _context17.next) {
|
|
1333
|
+
case 0:
|
|
1334
|
+
callingClientInstance = new CallingClient(webex, config);
|
|
1335
|
+
_context17.next = 1;
|
|
1336
|
+
return callingClientInstance.init();
|
|
1337
|
+
case 1:
|
|
1338
|
+
return _context17.abrupt("return", callingClientInstance);
|
|
1339
|
+
case 2:
|
|
1340
|
+
case "end":
|
|
1341
|
+
return _context17.stop();
|
|
1342
|
+
}
|
|
1343
|
+
}, _callee15);
|
|
1344
|
+
}));
|
|
1345
|
+
return function createClient(_x4, _x5) {
|
|
1346
|
+
return _ref8.apply(this, arguments);
|
|
1347
|
+
};
|
|
1348
|
+
}();
|
|
1349
|
+
//# sourceMappingURL=CallingClient.js.map
|