@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,201 @@
|
|
|
1
|
+
import { MOBIUS_EVENT_KEYS, RECORDING_EVENT_SUBTYPE, RECORDING_EVENT_TYPE, } from '../Events/types';
|
|
2
|
+
import { RecordingStatus } from './types';
|
|
3
|
+
export const CALL_SESSION_ID = 'a1b2c3d4-1111-2222-3333-444455556666';
|
|
4
|
+
export const RECORDING_ONE = {
|
|
5
|
+
id: '11111111-aaaa-bbbb-cccc-222222222222',
|
|
6
|
+
topic: 'Call with Alice',
|
|
7
|
+
createTime: '2024-05-01T10:01:05.000Z',
|
|
8
|
+
timeRecorded: '2024-05-01T10:00:00.000Z',
|
|
9
|
+
format: 'MP3',
|
|
10
|
+
serviceType: 'calling',
|
|
11
|
+
durationSeconds: 65,
|
|
12
|
+
sizeBytes: 1048576,
|
|
13
|
+
status: RecordingStatus.AVAILABLE,
|
|
14
|
+
ownerId: '8a67806f-fc4d-446b-a131-31e71ea5b0e9',
|
|
15
|
+
ownerEmail: 'owner@cisco.com',
|
|
16
|
+
ownerType: 'user',
|
|
17
|
+
storageRegion: 'US',
|
|
18
|
+
serviceData: {
|
|
19
|
+
locationId: 'loc-1',
|
|
20
|
+
callSessionId: CALL_SESSION_ID,
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
export const RECORDING_TWO = {
|
|
24
|
+
id: '33333333-dddd-eeee-ffff-444444444444',
|
|
25
|
+
topic: 'Call with Bob',
|
|
26
|
+
createTime: '2024-05-02T11:02:05.000Z',
|
|
27
|
+
timeRecorded: '2024-05-02T11:00:00.000Z',
|
|
28
|
+
format: 'MP3',
|
|
29
|
+
serviceType: 'calling',
|
|
30
|
+
durationSeconds: 120,
|
|
31
|
+
sizeBytes: 2097152,
|
|
32
|
+
status: RecordingStatus.AVAILABLE,
|
|
33
|
+
ownerId: '8a67806f-fc4d-446b-a131-31e71ea5b0e9',
|
|
34
|
+
ownerEmail: 'owner@cisco.com',
|
|
35
|
+
ownerType: 'user',
|
|
36
|
+
storageRegion: 'US',
|
|
37
|
+
serviceData: {
|
|
38
|
+
locationId: 'loc-1',
|
|
39
|
+
callSessionId: 'ffffffff-9999-8888-7777-666666666666',
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
export const MOCK_RECORDING_LIST_BODY = {
|
|
43
|
+
statusCode: 200,
|
|
44
|
+
body: {
|
|
45
|
+
items: [RECORDING_ONE, RECORDING_TWO],
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
export const MOCK_EMPTY_RECORDING_LIST_BODY = {
|
|
49
|
+
statusCode: 200,
|
|
50
|
+
body: {
|
|
51
|
+
items: [],
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
export const MOCK_RECORDING_BODY = {
|
|
55
|
+
statusCode: 200,
|
|
56
|
+
body: RECORDING_ONE,
|
|
57
|
+
};
|
|
58
|
+
export const RECORDING_OWNER_ID = '8a67806f-fc4d-446b-a131-31e71ea5b0e9';
|
|
59
|
+
export const RECORDING_REMOTE_PARTY_ID = '0fea4a63-4e27-46ee-99c3-2472cb12bf68';
|
|
60
|
+
export const MOCK_RECORDING_METADATA = {
|
|
61
|
+
id: RECORDING_ONE.id,
|
|
62
|
+
callSessionId: CALL_SESSION_ID,
|
|
63
|
+
owner: {
|
|
64
|
+
ownerID: RECORDING_OWNER_ID,
|
|
65
|
+
ownerEmail: 'owner@cisco.com',
|
|
66
|
+
ownerName: 'Mark',
|
|
67
|
+
orgID: '1704d30d-a131-4bc7-9449-948487643793',
|
|
68
|
+
},
|
|
69
|
+
participants: [
|
|
70
|
+
{ id: RECORDING_OWNER_ID, name: 'Mark', email: 'owner@cisco.com' },
|
|
71
|
+
{ id: RECORDING_REMOTE_PARTY_ID, name: 'Alice', email: 'alice@cisco.com' },
|
|
72
|
+
],
|
|
73
|
+
mediaStreams: [{ streamId: 'audio-1', type: 'audio', codec: 'opus', durationMS: 65000 }],
|
|
74
|
+
extensionData: {
|
|
75
|
+
callData: { direction: 'OUTGOING' },
|
|
76
|
+
acd: {},
|
|
77
|
+
redirectInfo: {},
|
|
78
|
+
},
|
|
79
|
+
serviceData: {
|
|
80
|
+
callRecordingId: RECORDING_ONE.id,
|
|
81
|
+
locationId: 'loc-1',
|
|
82
|
+
callSessionId: CALL_SESSION_ID,
|
|
83
|
+
personality: 'originator',
|
|
84
|
+
callingParty: {
|
|
85
|
+
actor: { type: 'USER', id: RECORDING_OWNER_ID, email: 'owner@cisco.com' },
|
|
86
|
+
number: '9902',
|
|
87
|
+
name: 'Mark',
|
|
88
|
+
},
|
|
89
|
+
calledParty: {
|
|
90
|
+
actor: { type: 'USER', id: RECORDING_REMOTE_PARTY_ID, email: 'alice@cisco.com' },
|
|
91
|
+
number: '9903',
|
|
92
|
+
name: 'Alice',
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
export const MOCK_RECORDING_METADATA_BODY = {
|
|
97
|
+
statusCode: 200,
|
|
98
|
+
body: MOCK_RECORDING_METADATA,
|
|
99
|
+
};
|
|
100
|
+
export const ERROR_DETAILS_400 = {
|
|
101
|
+
statusCode: 400,
|
|
102
|
+
data: {
|
|
103
|
+
error: '400 Bad request',
|
|
104
|
+
},
|
|
105
|
+
message: 'FAILURE',
|
|
106
|
+
};
|
|
107
|
+
export const ERROR_DETAILS_401 = {
|
|
108
|
+
statusCode: 401,
|
|
109
|
+
data: {
|
|
110
|
+
error: 'User is unauthorised, possible token expiry',
|
|
111
|
+
},
|
|
112
|
+
message: 'FAILURE',
|
|
113
|
+
};
|
|
114
|
+
export const ERROR_DETAILS_404 = {
|
|
115
|
+
statusCode: 404,
|
|
116
|
+
data: {
|
|
117
|
+
error: 'User info not found',
|
|
118
|
+
},
|
|
119
|
+
message: 'FAILURE',
|
|
120
|
+
};
|
|
121
|
+
const RECORDING_ACTIVITY = {
|
|
122
|
+
id: 'activity-1',
|
|
123
|
+
objectType: 'activity',
|
|
124
|
+
verb: 'add',
|
|
125
|
+
published: '2024-05-01T10:01:05.000Z',
|
|
126
|
+
actor: {
|
|
127
|
+
id: '8a67806f-fc4d-446b-a131-31e71ea5b0e9',
|
|
128
|
+
objectType: 'person',
|
|
129
|
+
emailAddress: 'owner@cisco.com',
|
|
130
|
+
},
|
|
131
|
+
object: {
|
|
132
|
+
id: RECORDING_ONE.id,
|
|
133
|
+
objectType: 'wxCallingCallRecording',
|
|
134
|
+
callSessionId: CALL_SESSION_ID,
|
|
135
|
+
durationSeconds: 65,
|
|
136
|
+
sizeBytes: 1048576,
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
export const MOCK_RECORDING_CREATED_EVENT = {
|
|
140
|
+
id: 'event-created',
|
|
141
|
+
data: {
|
|
142
|
+
activity: RECORDING_ACTIVITY,
|
|
143
|
+
eventType: RECORDING_EVENT_TYPE.CREATED,
|
|
144
|
+
},
|
|
145
|
+
timestamp: 12345,
|
|
146
|
+
trackingId: 'tracking-id',
|
|
147
|
+
};
|
|
148
|
+
export const MOCK_RECORDING_UPDATED_EVENT = {
|
|
149
|
+
id: 'event-updated',
|
|
150
|
+
data: {
|
|
151
|
+
activity: RECORDING_ACTIVITY,
|
|
152
|
+
eventType: RECORDING_EVENT_TYPE.UPDATED,
|
|
153
|
+
eventSubType: RECORDING_EVENT_SUBTYPE.SUMMARY_CREATE,
|
|
154
|
+
},
|
|
155
|
+
timestamp: 12346,
|
|
156
|
+
trackingId: 'tracking-id',
|
|
157
|
+
};
|
|
158
|
+
export const MOCK_RECORDING_DELETED_EVENT = {
|
|
159
|
+
id: 'event-deleted',
|
|
160
|
+
data: {
|
|
161
|
+
activity: RECORDING_ACTIVITY,
|
|
162
|
+
eventType: RECORDING_EVENT_TYPE.DELETED,
|
|
163
|
+
},
|
|
164
|
+
timestamp: 12347,
|
|
165
|
+
trackingId: 'tracking-id',
|
|
166
|
+
};
|
|
167
|
+
export const MOCK_RECORDING_TRASH_EVENT = {
|
|
168
|
+
id: 'event-trash',
|
|
169
|
+
data: {
|
|
170
|
+
activity: RECORDING_ACTIVITY,
|
|
171
|
+
eventType: RECORDING_EVENT_TYPE.UPDATED,
|
|
172
|
+
eventSubType: RECORDING_EVENT_SUBTYPE.TRASH,
|
|
173
|
+
},
|
|
174
|
+
timestamp: 12348,
|
|
175
|
+
trackingId: 'tracking-id',
|
|
176
|
+
};
|
|
177
|
+
export const MOCK_RECORDING_PURGE_EVENT = {
|
|
178
|
+
id: 'event-purge',
|
|
179
|
+
data: {
|
|
180
|
+
activity: RECORDING_ACTIVITY,
|
|
181
|
+
eventType: RECORDING_EVENT_TYPE.UPDATED,
|
|
182
|
+
eventSubType: RECORDING_EVENT_SUBTYPE.PURGE,
|
|
183
|
+
},
|
|
184
|
+
timestamp: 12349,
|
|
185
|
+
trackingId: 'tracking-id',
|
|
186
|
+
};
|
|
187
|
+
export const MOCK_RECORDING_RESTORE_EVENT = {
|
|
188
|
+
id: 'event-restore',
|
|
189
|
+
data: {
|
|
190
|
+
activity: RECORDING_ACTIVITY,
|
|
191
|
+
eventType: RECORDING_EVENT_TYPE.UPDATED,
|
|
192
|
+
eventSubType: RECORDING_EVENT_SUBTYPE.RESTORE,
|
|
193
|
+
},
|
|
194
|
+
timestamp: 12350,
|
|
195
|
+
trackingId: 'tracking-id',
|
|
196
|
+
};
|
|
197
|
+
export const RECORDING_MERCURY_KEYS = {
|
|
198
|
+
CREATED: MOBIUS_EVENT_KEYS.RECORDING_EVENT_CREATED,
|
|
199
|
+
UPDATED: MOBIUS_EVENT_KEYS.RECORDING_EVENT_UPDATED,
|
|
200
|
+
DELETED: MOBIUS_EVENT_KEYS.RECORDING_EVENT_DELETED,
|
|
201
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export const CALL_RECORDING_FILE = 'CallRecording';
|
|
2
|
+
export const CONVERGED_RECORDINGS = 'convergedRecordings';
|
|
3
|
+
export const SOFT_DELETE = 'softDelete';
|
|
4
|
+
export const METADATA = 'metadata';
|
|
5
|
+
export const FROM = 'from';
|
|
6
|
+
export const TO = 'to';
|
|
7
|
+
export const STATUS = 'status';
|
|
8
|
+
export const MAX = 'max';
|
|
9
|
+
export const SERVICE_TYPE = 'serviceType';
|
|
10
|
+
export const FORMAT = 'format';
|
|
11
|
+
export const OWNER_TYPE = 'ownerType';
|
|
12
|
+
export const STORAGE_REGION = 'storageRegion';
|
|
13
|
+
export const LOCATION_ID = 'locationId';
|
|
14
|
+
export const TOPIC = 'topic';
|
|
15
|
+
export const DEFAULT_STATUS = 'available';
|
|
16
|
+
export const DEFAULT_MAX = 30;
|
|
17
|
+
export const DEFAULT_NUMBER_OF_DAYS = 30;
|
|
18
|
+
export const WEBEX_USER_REQUEST_HEADER = 'WebexUserRequest';
|
|
19
|
+
export const RECORDING_NOT_FOUND_MESSAGE = 'No recordings found for the given call session id.';
|
|
20
|
+
export const METHODS = {
|
|
21
|
+
INITIALIZE_BACKEND_CONNECTOR: 'initializeBackendConnector',
|
|
22
|
+
GET_CALL_RECORDING: 'getCallRecording',
|
|
23
|
+
GET_RECORDINGS: 'getRecordings',
|
|
24
|
+
GET_RECORDING: 'getRecording',
|
|
25
|
+
GET_RECORDINGS_BY_CALL_SESSION_ID: 'getRecordingsByCallSessionId',
|
|
26
|
+
GET_RECORDING_METADATA: 'getRecordingMetadata',
|
|
27
|
+
DELETE_RECORDING: 'deleteRecording',
|
|
28
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export var RecordingStatus;
|
|
2
|
+
(function (RecordingStatus) {
|
|
3
|
+
RecordingStatus["AVAILABLE"] = "available";
|
|
4
|
+
RecordingStatus["DELETED"] = "deleted";
|
|
5
|
+
})(RecordingStatus || (RecordingStatus = {}));
|
|
6
|
+
export var AiGenerationStatus;
|
|
7
|
+
(function (AiGenerationStatus) {
|
|
8
|
+
AiGenerationStatus["NOT_STARTED"] = "NOT_STARTED";
|
|
9
|
+
AiGenerationStatus["IN_PROGRESS"] = "IN_PROGRESS";
|
|
10
|
+
AiGenerationStatus["COMPLETED"] = "COMPLETED";
|
|
11
|
+
AiGenerationStatus["FAILED"] = "FAILED";
|
|
12
|
+
})(AiGenerationStatus || (AiGenerationStatus = {}));
|
|
13
|
+
export var RecordingRequestType;
|
|
14
|
+
(function (RecordingRequestType) {
|
|
15
|
+
RecordingRequestType["LIST"] = "list";
|
|
16
|
+
RecordingRequestType["DETAIL"] = "detail";
|
|
17
|
+
RecordingRequestType["METADATA"] = "metadata";
|
|
18
|
+
RecordingRequestType["BY_CALL_SESSION"] = "byCallSession";
|
|
19
|
+
})(RecordingRequestType || (RecordingRequestType = {}));
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const getRemoteParty = (serviceData) => {
|
|
2
|
+
if (!serviceData) {
|
|
3
|
+
return undefined;
|
|
4
|
+
}
|
|
5
|
+
const { personality, callingParty, calledParty } = serviceData;
|
|
6
|
+
switch (personality) {
|
|
7
|
+
case 'originator':
|
|
8
|
+
return calledParty;
|
|
9
|
+
case 'terminator':
|
|
10
|
+
return callingParty;
|
|
11
|
+
default:
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
};
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import * as Media from '@webex/internal-media-core';
|
|
2
2
|
import { Mutex } from 'async-mutex';
|
|
3
3
|
import { METHOD_START_MESSAGE } from '../common/constants';
|
|
4
|
-
import { filterMobiusUris, handleCallingClientErrors, uploadLogs, validateServiceData, } from '../common/Utils';
|
|
4
|
+
import { filterMobiusUris, handleCallingClientErrors, normalizeMobiusUris, isValidServiceDomain, uploadLogs, validateServiceData, } from '../common/Utils';
|
|
5
5
|
import { LOGGER } from '../Logger/types';
|
|
6
6
|
import SDKConnector from '../SDKConnector';
|
|
7
7
|
import { Eventing } from '../Events/impl';
|
|
8
8
|
import { MOBIUS_EVENT_KEYS, SessionType, CALLING_CLIENT_EVENT_KEYS, } from '../Events/types';
|
|
9
9
|
import { ServiceIndicator, ALLOWED_SERVICES, HTTP_METHODS, RegistrationStatus, } from '../common/types';
|
|
10
|
+
import { MobiusEventType } from './calling/types';
|
|
10
11
|
import log from '../Logger';
|
|
11
12
|
import { getCallManager } from './calling/callManager';
|
|
12
|
-
import { CALLING_CLIENT_FILE, CALLS_CLEARED_HANDLER_UTIL, CALLING_USER_AGENT, CISCO_DEVICE_URL, DISCOVERY_URL, GET_MOBIUS_SERVERS_UTIL, SPARK_USER_AGENT, URL_ENDPOINT, API_V1, METHODS, NETWORK_FLAP_TIMEOUT, } from './constants';
|
|
13
|
+
import { CALLING_CLIENT_FILE, CALLS_CLEARED_HANDLER_UTIL, CALLING_USER_AGENT, CISCO_DEVICE_URL, DISCOVERY_URL, GET_MOBIUS_SERVERS_UTIL, SPARK_USER_AGENT, URL_ENDPOINT, API_V1, METHODS, NETWORK_FLAP_TIMEOUT, DEVICES_ENDPOINT_RESOURCE, WCC_CALLING_RTMS_DOMAIN, } from './constants';
|
|
13
14
|
import Line from './line';
|
|
14
|
-
import { METRIC_EVENT, REG_ACTION, METRIC_TYPE, CONNECTION_ACTION, MOBIUS_SERVER_ACTION, } from '../Metrics/types';
|
|
15
|
+
import { METRIC_EVENT, REG_ACTION, METRIC_TYPE, CONNECTION_ACTION, MOBIUS_SERVER_ACTION, MOBIUS_SOCKET_ACTION, } from '../Metrics/types';
|
|
15
16
|
import { getMetricManager } from '../Metrics';
|
|
16
17
|
import windowsChromiumIceWarmup from './windowsChromiumIceWarmupUtils';
|
|
18
|
+
import { APIRequest } from './utils/request';
|
|
17
19
|
export class CallingClient extends Eventing {
|
|
18
20
|
sdkConnector;
|
|
19
21
|
webex;
|
|
@@ -21,12 +23,16 @@ export class CallingClient extends Eventing {
|
|
|
21
23
|
callManager;
|
|
22
24
|
metricManager;
|
|
23
25
|
sdkConfig;
|
|
26
|
+
serviceData;
|
|
24
27
|
primaryMobiusUris;
|
|
25
28
|
backupMobiusUris;
|
|
29
|
+
primaryWssMobiusUris;
|
|
30
|
+
backupWssMobiusUris;
|
|
26
31
|
mobiusClusters;
|
|
27
32
|
mobiusHost;
|
|
28
33
|
mediaEngine;
|
|
29
34
|
lineDict = {};
|
|
35
|
+
apiRequest;
|
|
30
36
|
isNetworkDown = false;
|
|
31
37
|
networkDownTimestamp = '';
|
|
32
38
|
networkUpTimestamp = '';
|
|
@@ -45,14 +51,14 @@ export class CallingClient extends Eventing {
|
|
|
45
51
|
this.mutex = new Mutex();
|
|
46
52
|
this.webex = this.sdkConnector.getWebex();
|
|
47
53
|
this.sdkConfig = config;
|
|
48
|
-
|
|
54
|
+
this.serviceData = this.sdkConfig?.serviceData?.indicator
|
|
49
55
|
? this.sdkConfig.serviceData
|
|
50
56
|
: { indicator: ServiceIndicator.CALLING, domain: '' };
|
|
51
57
|
const logLevel = this.sdkConfig?.logger?.level ? this.sdkConfig.logger.level : LOGGER.ERROR;
|
|
52
58
|
log.setLogger(logLevel, CALLING_CLIENT_FILE);
|
|
53
|
-
validateServiceData(serviceData);
|
|
54
|
-
this.callManager = getCallManager(this.webex, serviceData.indicator);
|
|
55
|
-
this.metricManager = getMetricManager(this.webex, serviceData.indicator);
|
|
59
|
+
validateServiceData(this.serviceData);
|
|
60
|
+
this.callManager = getCallManager(this.webex, this.serviceData.indicator, this.sdkConfig?.iceGathering);
|
|
61
|
+
this.metricManager = getMetricManager(this.webex, this.serviceData.indicator);
|
|
56
62
|
this.mediaEngine = Media;
|
|
57
63
|
const adaptedLogger = {
|
|
58
64
|
log: (...args) => webex.logger.log(args.join(' : ')),
|
|
@@ -65,12 +71,20 @@ export class CallingClient extends Eventing {
|
|
|
65
71
|
this.mediaEngine.setLogger(adaptedLogger);
|
|
66
72
|
this.primaryMobiusUris = [];
|
|
67
73
|
this.backupMobiusUris = [];
|
|
74
|
+
this.primaryWssMobiusUris = [];
|
|
75
|
+
this.backupWssMobiusUris = [];
|
|
68
76
|
this.mobiusClusters = this.webex.internal.services.getMobiusClusters();
|
|
69
77
|
this.mobiusHost = '';
|
|
78
|
+
this.apiRequest = APIRequest.getInstance({ webex: this.webex });
|
|
70
79
|
this.registerSessionsListener();
|
|
71
80
|
this.registerCallsClearedListener();
|
|
72
81
|
}
|
|
73
82
|
async init() {
|
|
83
|
+
const loggerContext = {
|
|
84
|
+
file: CALLING_CLIENT_FILE,
|
|
85
|
+
method: METHODS.INIT,
|
|
86
|
+
};
|
|
87
|
+
log.info(METHOD_START_MESSAGE, loggerContext);
|
|
74
88
|
if (typeof window !== 'undefined' && window?.navigator?.userAgent) {
|
|
75
89
|
const ua = window.navigator.userAgent;
|
|
76
90
|
if (ua.toLowerCase().includes('windows')) {
|
|
@@ -97,8 +111,50 @@ export class CallingClient extends Eventing {
|
|
|
97
111
|
}
|
|
98
112
|
}
|
|
99
113
|
await this.getMobiusServers();
|
|
114
|
+
if (this.apiRequest.isSocketEnabled()) {
|
|
115
|
+
this.apiRequest.registerMobiusSocketConnectionListener({
|
|
116
|
+
onConnected: () => this.emit(CALLING_CLIENT_EVENT_KEYS.MOBIUS_SOCKET_CONNECTED),
|
|
117
|
+
onDisconnected: (reason) => this.emit(CALLING_CLIENT_EVENT_KEYS.MOBIUS_SOCKET_DISCONNECTED, { reason }),
|
|
118
|
+
});
|
|
119
|
+
await this.connectToMobiusSocket();
|
|
120
|
+
this.apiRequest.registerMobiusSocketListener(this.handleMobiusAsyncEvent);
|
|
121
|
+
}
|
|
122
|
+
if (this.serviceData.indicator === ServiceIndicator.CONTACT_CENTER &&
|
|
123
|
+
!this.serviceData.domain) {
|
|
124
|
+
const rtmsDomain = this.getRTMSDomain();
|
|
125
|
+
this.serviceData.domain = rtmsDomain;
|
|
126
|
+
if (this.sdkConfig?.serviceData) {
|
|
127
|
+
this.sdkConfig.serviceData.domain = this.serviceData.domain;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (!isValidServiceDomain(this.serviceData)) {
|
|
131
|
+
throw new Error('Invalid service domain.');
|
|
132
|
+
}
|
|
100
133
|
await this.createLine();
|
|
101
134
|
this.setupNetworkEventListeners();
|
|
135
|
+
log.log('CallingClient initialization complete', loggerContext);
|
|
136
|
+
}
|
|
137
|
+
getRTMSDomain() {
|
|
138
|
+
log.info('Fetching RTMS domain from service catalog', {
|
|
139
|
+
file: CALLING_CLIENT_FILE,
|
|
140
|
+
method: METHODS.GET_RTMS_DOMAIN,
|
|
141
|
+
});
|
|
142
|
+
try {
|
|
143
|
+
const rtmsURL = this.webex.internal.services.get(WCC_CALLING_RTMS_DOMAIN);
|
|
144
|
+
const url = new URL(rtmsURL);
|
|
145
|
+
log.info(`RTMS domain resolved from catalog: ${url.hostname}`, {
|
|
146
|
+
file: CALLING_CLIENT_FILE,
|
|
147
|
+
method: METHODS.GET_RTMS_DOMAIN,
|
|
148
|
+
});
|
|
149
|
+
return url.hostname;
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
log.warn(`Failed to fetch RTMS domain from service catalog: ${error}`, {
|
|
153
|
+
file: CALLING_CLIENT_FILE,
|
|
154
|
+
method: METHODS.GET_RTMS_DOMAIN,
|
|
155
|
+
});
|
|
156
|
+
return '';
|
|
157
|
+
}
|
|
102
158
|
}
|
|
103
159
|
async checkNetworkReachability() {
|
|
104
160
|
try {
|
|
@@ -311,6 +367,8 @@ export class CallingClient extends Eventing {
|
|
|
311
367
|
const mobiusUris = filterMobiusUris(mobiusServers, this.mobiusHost);
|
|
312
368
|
this.primaryMobiusUris = mobiusUris.primary;
|
|
313
369
|
this.backupMobiusUris = mobiusUris.backup;
|
|
370
|
+
this.primaryWssMobiusUris = mobiusUris.primaryWss;
|
|
371
|
+
this.backupWssMobiusUris = mobiusUris.backupWss;
|
|
314
372
|
log.log(`Final list of Mobius Servers, primary: ${mobiusUris.primary} and backup: ${mobiusUris.backup}`, {
|
|
315
373
|
file: CALLING_CLIENT_FILE,
|
|
316
374
|
method: GET_MOBIUS_SERVERS_UTIL,
|
|
@@ -346,6 +404,54 @@ export class CallingClient extends Eventing {
|
|
|
346
404
|
this.primaryMobiusUris = [`${this.mobiusHost}${URL_ENDPOINT}`];
|
|
347
405
|
}
|
|
348
406
|
}
|
|
407
|
+
async connectToMobiusSocket() {
|
|
408
|
+
const loggerContext = {
|
|
409
|
+
file: CALLING_CLIENT_FILE,
|
|
410
|
+
method: METHODS.CONNECT_TO_MOBIUS_SOCKET,
|
|
411
|
+
};
|
|
412
|
+
log.info(METHOD_START_MESSAGE, loggerContext);
|
|
413
|
+
if (!this.primaryWssMobiusUris.length) {
|
|
414
|
+
log.warn('No WSS URIs available from Mobius discovery for primary, skipping socket connection', loggerContext);
|
|
415
|
+
return;
|
|
416
|
+
}
|
|
417
|
+
for (const wssUri of this.primaryWssMobiusUris) {
|
|
418
|
+
try {
|
|
419
|
+
log.log(`Trying primary WSS URI: ${wssUri}`, loggerContext);
|
|
420
|
+
await this.apiRequest.connectToMobiusSocket(wssUri);
|
|
421
|
+
log.log(`Successfully connected to Mobius socket on primary WSS URI: ${wssUri}`, loggerContext);
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
424
|
+
catch (err) {
|
|
425
|
+
log.warn(`Primary WSS URI connection failed for ${wssUri}: ${err}`, loggerContext);
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
log.warn('All primary WSS URI connection attempts failed', loggerContext);
|
|
429
|
+
}
|
|
430
|
+
handleMobiusAsyncEvent = async (event) => {
|
|
431
|
+
const loggerContext = {
|
|
432
|
+
file: CALLING_CLIENT_FILE,
|
|
433
|
+
method: METHODS.HANDLE_MOBIUS_ASYNC_EVENT,
|
|
434
|
+
};
|
|
435
|
+
const eventType = event?.data.eventType;
|
|
436
|
+
log.trace(`Mobius async event received - eventType: ${eventType ?? 'undefined'}`, loggerContext);
|
|
437
|
+
if (!eventType) {
|
|
438
|
+
log.warn('Dropping unsupported mobius socket payload', loggerContext);
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
441
|
+
if (eventType === MobiusEventType.REGISTRATION_DOWN) {
|
|
442
|
+
log.warn(`Received ${eventType} event from Mobius.`, loggerContext);
|
|
443
|
+
const line = Object.values(this.lineDict)[0];
|
|
444
|
+
if (!line) {
|
|
445
|
+
log.warn('No line found, skipping registration down event', loggerContext);
|
|
446
|
+
return;
|
|
447
|
+
}
|
|
448
|
+
await line.registration.handleRegistrationDownEvent(event);
|
|
449
|
+
this.metricManager.submitMobiusSocketMetric(METRIC_EVENT.MOBIUS_SOCKET_ERROR, MOBIUS_SOCKET_ACTION.REGISTRATION_DOWN, METRIC_TYPE.BEHAVIORAL, undefined, event?.trackingId, undefined, eventType);
|
|
450
|
+
return;
|
|
451
|
+
}
|
|
452
|
+
this.callManager.dequeueWsEvents(event);
|
|
453
|
+
log.trace(`Mobius async event dispatched to CallManager - eventType: ${eventType}`, loggerContext);
|
|
454
|
+
};
|
|
349
455
|
registerCallsClearedListener() {
|
|
350
456
|
log.info(METHOD_START_MESSAGE, {
|
|
351
457
|
file: CALLING_CLIENT_FILE,
|
|
@@ -404,12 +510,61 @@ export class CallingClient extends Eventing {
|
|
|
404
510
|
file: CALLING_CLIENT_FILE,
|
|
405
511
|
method: METHODS.CREATE_LINE,
|
|
406
512
|
});
|
|
407
|
-
const
|
|
513
|
+
const socketEnabled = this.apiRequest.isSocketEnabled();
|
|
514
|
+
const primaryUris = socketEnabled && this.primaryWssMobiusUris.length
|
|
515
|
+
? normalizeMobiusUris(this.primaryWssMobiusUris)
|
|
516
|
+
: this.primaryMobiusUris;
|
|
517
|
+
const backupUris = socketEnabled && this.backupWssMobiusUris.length
|
|
518
|
+
? normalizeMobiusUris(this.backupWssMobiusUris)
|
|
519
|
+
: this.backupMobiusUris;
|
|
520
|
+
const line = new Line(this.webex.internal.device.userId, this.webex.internal.device.url, this.mutex, primaryUris, backupUris, this.getLoggingLevel(), this.serviceData, this.sdkConfig?.jwe);
|
|
408
521
|
this.lineDict[line.lineId] = line;
|
|
409
522
|
}
|
|
410
523
|
getLines() {
|
|
411
524
|
return this.lineDict;
|
|
412
525
|
}
|
|
526
|
+
async getDevices(userId) {
|
|
527
|
+
const userid = userId || this.webex.internal.device.userId;
|
|
528
|
+
if (!userid) {
|
|
529
|
+
throw new Error('userId is required to fetch devices');
|
|
530
|
+
}
|
|
531
|
+
log.info(METHOD_START_MESSAGE, { file: CALLING_CLIENT_FILE, method: METHODS.GET_DEVICES });
|
|
532
|
+
const mobiusUrls = [...this.primaryMobiusUris, ...this.backupMobiusUris];
|
|
533
|
+
if (mobiusUrls.length === 0) {
|
|
534
|
+
throw new Error('Mobius URLs are not available');
|
|
535
|
+
}
|
|
536
|
+
let finalError;
|
|
537
|
+
for (const mobiusUrl of mobiusUrls) {
|
|
538
|
+
const normalizedMobiusUrl = mobiusUrl.replace(/\/+$/, '/');
|
|
539
|
+
const uri = `${normalizedMobiusUrl}${DEVICES_ENDPOINT_RESOURCE}?userid=${encodeURIComponent(userid)}`;
|
|
540
|
+
try {
|
|
541
|
+
const response = (await this.webex.request({
|
|
542
|
+
uri,
|
|
543
|
+
method: HTTP_METHODS.GET,
|
|
544
|
+
service: ALLOWED_SERVICES.MOBIUS,
|
|
545
|
+
headers: {
|
|
546
|
+
[CISCO_DEVICE_URL]: this.webex.internal.device.url,
|
|
547
|
+
[SPARK_USER_AGENT]: CALLING_USER_AGENT,
|
|
548
|
+
},
|
|
549
|
+
}));
|
|
550
|
+
if (response.statusCode !== 200) {
|
|
551
|
+
throw new Error(`API call failed with ${response.statusCode}`);
|
|
552
|
+
}
|
|
553
|
+
const body = response.body;
|
|
554
|
+
Object.values(this.lineDict)[0].registration.setDeviceInfo(body);
|
|
555
|
+
Object.values(this.lineDict)[0].registration.setActiveMobiusUrl(normalizedMobiusUrl);
|
|
556
|
+
return body.devices ?? [];
|
|
557
|
+
}
|
|
558
|
+
catch (error) {
|
|
559
|
+
finalError = error;
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
log.error(`Failed to fetch devices for userId ${userId}: ${JSON.stringify(finalError)}`, {
|
|
563
|
+
file: CALLING_CLIENT_FILE,
|
|
564
|
+
method: METHODS.GET_DEVICES,
|
|
565
|
+
});
|
|
566
|
+
throw finalError;
|
|
567
|
+
}
|
|
413
568
|
getActiveCalls() {
|
|
414
569
|
const activeCalls = {};
|
|
415
570
|
const calls = this.callManager.getActiveCalls();
|
|
@@ -432,6 +587,9 @@ export class CallingClient extends Eventing {
|
|
|
432
587
|
});
|
|
433
588
|
return connectCall;
|
|
434
589
|
}
|
|
590
|
+
isMobiusSocketConnected() {
|
|
591
|
+
return this.apiRequest.isSocketEnabled() && this.apiRequest.isSocketConnected();
|
|
592
|
+
}
|
|
435
593
|
async uploadLogs() {
|
|
436
594
|
const result = await uploadLogs({}, true);
|
|
437
595
|
if (!result) {
|