---
title: SAIF.Application.Services.AudioVideo.32 overview
summary: High-level purpose, scope, and responsibilities for this library.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-15
library: SAIF.Application.Services.AudioVideo.32
reference_type: package
---

# 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](business-rules.md#br-av-01-required-current-user-id) through [BR-AV-05](business-rules.md#br-av-05-description-length-limit)) 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.

## Related documentation
- [Index](index.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Configuration](configuration.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [API reference](api/index.md)

## 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`
