SAIF.Application.Services.AudioVideo overview¶
Documentation context: Packaged Component (NuGet)
SAIF.Application.Services.AudioVideo is a single-assembly Framework4 component library that imports call recordings from the third-party CallRex call-recording appliance into SAIF, tracks their import status, and exposes a vendor-integration adapter for on-demand recording operations and a real-time agent-state feed.
Purpose¶
- Orchestrate the end-to-end import of a call recording from the CallRex vendor system into SAIF: validate the import request, create or reuse a database record, back up and transcode the source media file, verify the result, remove the source recording from CallRex, and track import status throughout.
- Provide a persistence-agnostic contract layer (
IAudioVideoService,IRecordingSystem,IImportStatusManager) that decouples callers from the NHibernate persistence layer and the CallRex WCF vendor integration. - Isolate all communication with the CallRex vendor system behind a single adapter (
CallRecordingSystem/IRecordingSystem), including both on-demand SOAP operations and a real-time duplex agent-state feed. - Consumed by applications elsewhere in the SAIF ecosystem that need to import, invalidate, or query call recordings, or monitor live agent call state.*
Responsibilities¶
- Validate inbound import requests (
AudioVideoValidator) before any database, file-system, or vendor-system action is taken. - Persist and query
RecordingandAudioImportStatusentities via NHibernate (IUnitOfWork/IRepository<T>). - Perform file-system side effects: back up the source recording file, verify integrity via MD5 hash, and transcode it to
.wmausing the bundledffmpeg.exe(viaMediaToolkit). - Delete successfully-imported recordings from the CallRex vendor system and mark local import status accordingly.
- Relay real-time agent/call-state updates from CallRex to library consumers via the
AgentStateCallbackduplex WCF callback.
Key components¶
AudioVideoService: single public entry point (IAudioVideoService) that orchestrates the import, invalidation, cancellation, and lookup workflows.AudioVideoValidator: FluentValidation rule set enforced against everyImportAudioRequest.ImportStatusManager: tracks per-recordingAudioImportStatusstate independently of theRecordingentity.CallRecordingExtensions: computes recording description and legal-discoverability classification.CallRecordingSystem: adapter (IRecordingSystem) that fronts the two CallRex WCF proxies.CallRexServiceProxy/CallRexStateServiceProxy: WCF client proxies for on-demand recording operations and the real-time duplex agent-state feed, respectively.AudioImportStatusMap/RecordingMap: FluentNHibernateClassMap<T>mappings for theaudio_import_statusandRECORDINGtables.
Related documentation¶
Note: Statements marked with
*were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with**could not be confirmed; treat as unknown until verified.
Sources¶
Application\SAIF.Application.Services.AudioVideo\SAIF.Application.Services.AudioVideo.csprojApplication\SAIF.Application.Services.AudioVideo\Core\Services\IAudioVideoService.csApplication\SAIF.Application.Services.AudioVideo\Core\Contracts\AudioVideo\IRecordingSystem.csApplication\SAIF.Application.Services.AudioVideo\Core\Contracts\AudioVideo\IImportStatusManager.csApplication\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\AudioVideoService.csApplication\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\AudioVideoValidator.csApplication\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\ImportStatusManager.csApplication\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\CallRecordingExtensions.csApplication\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\RecordingSystem.csApplication\SAIF.Application.Services.AudioVideo\Services\ClientProxies\ThirdParty\CallRexServiceProxy.csApplication\SAIF.Application.Services.AudioVideo\Services\ClientProxies\ThirdParty\CallRexStateServiceProxy.csApplication\SAIF.Application.Services.AudioVideo\Data\Mappings\AudioImportStatusMap.csApplication\SAIF.Application.Services.AudioVideo\Data\Mappings\RecordingMap.cs