Skip to content

SAIF.Application.Services.AudioVideo.32 overview

Documentation context: Packaged Component (NuGet)

SAIF.Application.Services.AudioVideo.32 is the x86 build variant of the audio/video call-recording import library: it orchestrates importing call recordings from the third-party CallRex call-recording system into the SAIF data model, converting and verifying the recording file, tracking import status, and providing a façade over the CallRex WCF services for recording retrieval, control, and real-time agent call-state monitoring.

Purpose

  • Imports call recordings raised by the third-party CallRex system, validating the import request, creating or reusing a Recording record, taking a locally verified backup copy of the source file, converting it to a mono/32kbps WMA file, and confirming both success and the CallRex system's own recording deletion before marking the import complete.
  • Tracks per-recording import status (InProgress/Completed/Errored/Missing) so callers and the CallRex system can query whether a given recording has been imported.
  • Exposes a façade over the CallRex ClientService and AgentStateService WCF endpoints for recording retrieval, recording control (start/stop/pause/resume), invalidation/deletion, and real-time agent call-state monitoring.
  • Provides a lightweight, always-available HasMedia query so a consuming claim/investigation screen can decide whether to show a media-list affordance, even when the service is constructed without its full dependency set.
  • This library is a 32-bit (x86) build variant of the sibling library SAIF.Application.Services.AudioVideo. It compiles the identical linked source tree as that sibling — every Core, Data, and Services source file is a <Link>-included file physically located in SAIF.Application.Services.AudioVideo — and differs only in its PlatformTarget=x86 setting and its dependency on the 32-bit-specific SAIF.Framework.Data.NHibernate.32 package (which bundles the x86 Oracle.DataAccess.dll ODP.NET unmanaged driver). It exists so this identical business logic can run inside 32-bit host processes (for example a legacy Windows Service, an x86 IIS application pool, or an x86-only batch console executable) that cannot load an AnyCPU/x64 assembly carrying the unmanaged Oracle client.
  • No consuming application project was found within this repository's scope; the library is packaged as a standalone NuGet library for consumption by an as-yet-undetermined 32-bit host application elsewhere in the SAIF application estate.

Responsibilities

  • Validate import requests against business rules (BR-AV-01 through BR-AV-05) before any persistence or file operation occurs.
  • Persist and manage Recording and AudioImportStatus entities via IUnitOfWork/IRepository<T>.
  • Perform local file backup, MD5 integrity verification, and ffmpeg-based audio conversion of the source recording.
  • Integrate with the third-party CallRex system over WCF for recording deletion, invalidation, retrieval, and agent call-state monitoring.

Key components

  • AudioVideoService: orchestration/business-logic entry point implementing IAudioVideoService.
  • AudioVideoValidator: FluentValidation validator for ImportAudioRequest.
  • ImportStatusManager: NHibernate-repository-backed tracker of per-recording import status.
  • CallRecordingSystem: façade implementing IRecordingSystem over the CallRex WCF proxies.
  • CallRexServiceProxy / CallRexStateServiceProxy / AgentStateCallback: WCF client wrappers for the CallRex ClientService and AgentStateService endpoints.

Sources

  • Application\SAIF.Application.Services.AudioVideo.32\SAIF.Application.Services.AudioVideo.32.csproj
  • Application\SAIF.Application.Services.AudioVideo\Core\Services\IAudioVideoService.cs
  • Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\AudioVideoService.cs
  • Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\ImportStatusManager.cs
  • Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\RecordingSystem.cs
  • nuspec\SAIF.Apps\SAIF.Application.Services.AudioVideo.32.nuspec