SAIF.Application.Services.AudioVideo operations and processes¶
This page is the operation catalog and cross-operation hub for this library. Each operation's detailed, step-by-step logic lives in its own page under operations/.
Operation catalog¶
| Operation | Intent | Trigger | Inputs | Outputs | Rules |
|---|---|---|---|---|---|
| Import a call recording from CallRex | Import a call recording from the CallRex vendor system into SAIF, including persistence, file backup/transcode, and vendor cleanup. | External caller invokes IAudioVideoService.ImportRecording. |
ImportAudioRequest |
RecordingInfo |
BR-AV-01–BR-AV-09 |
| Invalidate a call recording | Mark a recording invalid without deleting vendor-side data. | External caller invokes IAudioVideoService.InvalidateRecording. |
CallRecording |
None (void) | BR-AV-10 |
| Cancel an in-progress import | Clear the local import-status row for a recording. | External caller invokes IAudioVideoService.CancelImport. |
Guid callRecordingId |
None (void) | — |
| Look up recording information | Retrieve persisted recording metadata by vendor call ID. | External caller invokes IAudioVideoService.GetRecordingInfo. |
Guid callRecordingId |
RecordingInfo or null |
— |
| Check whether a claim has recorded media | Existence check for a claim's recordings; available in degraded mode. | External caller invokes IAudioVideoService.HasMedia. |
long claimId |
bool |
— |
| Mark an import status errored | Force a recording's import status to Errored. | External caller invokes AudioVideoService.MarkImportStatusErrored. |
Guid callRecordingId, optional string reason |
None (void) | — |
| Real-time call-state monitoring | Subscribe to or poll live agent/call-state updates from CallRex. | External caller invokes CallRecordingSystem.StartMonitoring/StopMonitoring/GetAllUsersCurrentCallState. |
CallUser |
OnCallStateChanged events or IEnumerable<CallMonitorState> |
— |
Process flow diagram¶
The following diagram visualizes the primary operational flow across operations.
flowchart TD
Start([External caller]) --> Import[Import a call recording]
Start --> Invalidate[Invalidate a call recording]
Start --> Cancel[Cancel an in-progress import]
Start --> Lookup[Look up recording information]
Start --> HasMedia[Check whether a claim has recorded media]
Start --> MarkErrored[Mark an import status errored]
Start --> Monitor[Real-time call-state monitoring]
Import --> Decision{Vendor delete succeeds?}
Decision -->|Yes| Complete([Import status: Completed])
Decision -->|No| Errored([Import status: Errored])
Database interactions¶
The following table summarizes which operations read from or write to the database.
| Operation | Tables | Type |
|---|---|---|
| Import a call recording from CallRex | RECORDING, audio_import_status |
Read/Write |
| Invalidate a call recording | audio_import_status |
Write (delete) |
| Cancel an in-progress import | audio_import_status |
Write (delete) |
| Look up recording information | RECORDING |
Read |
| Check whether a claim has recorded media | RECORDING |
Read |
| Mark an import status errored | audio_import_status |
Write (upsert) |
| Real-time call-state monitoring | None | — |
Failure and edge-case behavior¶
- Every operation gated by
_enableServicesFlagthrowsNotImplementedExceptionwhenAudioVideoServiceis constructed via its degraded constructor (AudioVideoService(IUnitOfWork uow)); only Check whether a claim has recorded media is exempt. - Import a call recording from CallRex rolls back its own database row on most failures but does not roll back on a vendor-delete failure after a successful local import (BR-AV-09).
- Real-time call-state monitoring uses an unsecured duplex transport (
WSDualHttpBinding, security modeNone).
Related documentation¶
Sources¶
Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\AudioVideoService.csApplication\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\ImportStatusManager.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\Services\ClientProxies\ThirdParty\AgentStateCallback.cs