---
title: Retrieve recording status
summary: Looks up recording metadata and import-tracking status for a given call recording.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-15
library: SAIF.Application.Services.AudioVideo.32
reference_type: package
operation_id: OP-AV-RETRIEVE-STATUS
trigger: Caller invokes AudioVideoService.GetRecordingInfo or ImportStatusManager.GetStatus
---

# Retrieve recording status

This operation covers the two read-only lookups a caller uses to check the state of a previously (or currently) imported recording: the persisted recording metadata, and its separate import-tracking status record.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-AV-RETRIEVE-STATUS |
| **Trigger** | Caller invokes `AudioVideoService.GetRecordingInfo(Guid callRecordingId)` and/or `ImportStatusManager.GetStatus(Guid callRecordingId)` |
| **Inputs** | `Guid callRecordingId` |
| **Outputs** | `RecordingInfo` (or `null`) from `GetRecordingInfo`; `AudioImportStatusInfo` from `GetStatus` |
| **Primary components** | `AudioVideoService.GetRecordingInfo`, `ImportStatusManager.GetStatus` |
| **Entry point** | `Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\AudioVideoService.cs`, `Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\ImportStatusManager.cs` |

## Steps

1. `GetRecordingInfo(Guid callRecordingId)`: looks up the `Recording` entity by `CallRexId` via the repository query used by `AudioVideoService.GetRecording`.
   - If found: maps the entity to a `RecordingInfo` DTO (`RecordingId`, `CallRecordingId`, `ClaimId`, `Location`, `RecordedByUserId`, `Description`, `StartDate`, `Duration`) and returns it.
   - If not found: returns `null` — no exception is raised.
2. `ImportStatusManager.GetStatus(Guid callRecordingId)`: queries the `AudioImportStatus` entity by `Id`.
   - If found: returns the persisted `AudioImportStatusInfo` (`Id`, `Status`, `Reason`).
   - If not found: returns a synthetic result with `Status = "Missing"` ([BR-AV-18](../business-rules.md#br-av-18-missing-import-status-default)) — no exception is raised.

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start([Caller requests status]) --> Choice{Which lookup?}
	Choice -->|Recording metadata| S1[Query Recording by CallRexId]
	S1 -->|Found| R1([Return RecordingInfo])
	S1 -->|Not found| R2([Return null])
	Choice -->|Import status| S2[Query AudioImportStatus by Id]
	S2 -->|Found| R3([Return AudioImportStatusInfo])
	S2 -->|Not found| R4([Return synthetic 'Missing' status])
```

## Failure and edge-case behavior
- Neither lookup throws when the target row is absent; both return a benign "not found" value (`null` or a synthetic `"Missing"` status) rather than an exception ([BR-AV-18](../business-rules.md#br-av-18-missing-import-status-default)).

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)

## Sources
- `Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\AudioVideoService.cs`
- `Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\ImportStatusManager.cs`
