---
title: Configuration settings
summary: Configuration keys consumed by this library, retrieval methods, and runtime dependencies.
status: draft
owner: <owner>
last_reviewed: 2026-09-15
library: SAIF.Application.Services.AudioVideo
reference_type: package
---

# Configuration settings

`SAIF.Application.Services.AudioVideo` retrieves all of its configuration exclusively through `IEnvironmentService.GetConfigSetting(string key)`; five distinct keys were identified, all resolving CallRex service URLs or media file-system paths. No `GetSecureConfigSetting`, `ConfigurationManager.AppSettings`, `DbConnectionManager`, or `ApplicationSettingsBase`/`Settings.Default` usage exists anywhere in this library's own source.

## Configuration retrieval methods

| Method | Class / Interface | Namespace | Usage pattern |
| --- | --- | --- | --- |
| `GetConfigSetting(string key)` | `IEnvironmentService` | `SAIF.Core.Services` | Instance obtained via constructor injection (`AudioVideoService`, `CallRecordingSystem`, `CallRexServiceProxy`) and called directly at the point of use to resolve plain-text runtime settings (media output path, CallRex service URLs, recording path). No dedicated `*Configuration` wrapper class exists in this library — each consumer calls `GetConfigSetting` inline. |

## Environment API settings

Settings retrieved via `IEnvironmentService` (centralized environment configuration service).

| Setting key | Method | Data type | Purpose | Consuming class | Source |
| --- | --- | --- | --- | --- | --- |
| `AudioImportService.callRexMediaOutputPath` | `GetConfigSetting` | string (file-system/UNC path) | Base output path used to compute both the recording destination path and the backup path for imported media. | `AudioVideoService` (`GetRecordingPath`, `GetRecordingBackupPath`) | `Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\AudioVideoService.cs` |
| `AudioImportService.callRexServiceUrl` | `GetConfigSetting` | string (URL) | Endpoint URL for the CallRex on-demand recording/client SOAP service. | `CallRecordingSystem` (constructor) | `Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\RecordingSystem.cs` |
| `AudioImportService.callRexStateServiceUrl` | `GetConfigSetting` | string (URL) | Endpoint URL for the CallRex real-time agent-state duplex service. | `CallRecordingSystem` (constructor, `GetAllUsersCurrentCallState`) | `Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\RecordingSystem.cs` |
| `AudioImportService.callRexRecordingBaseUrl` | `GetConfigSetting` | string (URL) | Base URL used to construct the `CallRecording.RecordingUrl` returned to callers. | `CallRexServiceProxy` (`GetRecordings`, `GetRecording`) | `Application\SAIF.Application.Services.AudioVideo\Services\ClientProxies\ThirdParty\CallRexServiceProxy.cs` |
| `AudioImportService.callRexRecordingPath` | `GetConfigSetting` | string (file-system/UNC path) | File-system/share path where CallRex stores recording source files; used to build `CallRecording.AbsoluteFileLocation`. | `CallRexServiceProxy` (`GetRecording`) | `Application\SAIF.Application.Services.AudioVideo\Services\ClientProxies\ThirdParty\CallRexServiceProxy.cs` |

All five keys are string literals passed directly to `GetConfigSetting`, with no constant/enum indirection, and all vary by environment (URLs and file-system paths differ across dev/test/prod deployments).

## AppSettings (Web.config)

None — this library does not read `System.Configuration.ConfigurationManager.AppSettings`, and `app.config` for this project declares no `<appSettings>` section (it contains only a `<system.serviceModel>` block and a `<startup>` element).

## Database connection configuration

None declared directly in this library. This library performs NHibernate-mapped data access via `IUnitOfWork`/`IRepository<T>`, but the connection string and provider selection (Oracle vs. SQL Server) is resolved entirely inside the referenced `SAIF.Framework.Data.NHibernate` package (`ConfigurationFactoryBase.CreateConfiguration(string connection, int batchSize, bool showSql)`), which accepts an already-resolved connection string as a parameter rather than calling `IEnvironmentService`/`DbConnectionManager` itself. The actual connection-string key/value used at runtime is composed by a host/DI-composition layer outside both this library and the NHibernate factory package.**

## Secure settings

None — no `GetSecureConfigSetting` or `SystemHashUtil.ComputeHash` usage was found anywhere in this library.

Note (cross-reference, not a secure-config finding): `CallRexServiceProxy` hardcodes a CallRex service-account credential as plain string literals — `_userId = "AI"` / `_pwd = "AudioImporter"` (`Services\ClientProxies\ThirdParty\CallRexServiceProxy.cs`) — used to call `_webService.Login(_userId, _pwd)`. This credential is **not** retrieved via `IEnvironmentService.GetSecureConfigSetting` or any other configuration mechanism; it is compiled into source.

## Transitive configuration (from dependencies)

Settings required at runtime by referenced libraries or packages, not directly consumed by this library's code.

| Setting key | Method | Source dependency | Dependency type | Purpose |
| --- | --- | --- | --- | --- |
| NHibernate connection string (Oracle or SQL Server) | Not resolved via `IEnvironmentService`/`DbConnectionManager` inside `SAIF.Framework.Data.NHibernate` — received as an already-built parameter | `SAIF.Framework.Data.NHibernate` | NuGet (same-repo) | Backs the `IUnitOfWork`/`IRepository<T>` stack consumed by `AudioVideoService` and other consumers; the actual key(s)/hosting-application DI wiring are outside this library's own source.** |
| `IEnvironmentService` implementation (which concrete class is registered) | Constructor-injected interface; concrete implementation registration not present in this library | `SAIF.Framework.Core` | NuGet | Supplies the interface used by all five `GetConfigSetting` call sites above; the concrete implementation is composed by the hosting application/DI container.** |

## Configuration dependencies

| Dependency | Type | Required at | Impact if missing |
| --- | --- | --- | --- |
| `IEnvironmentService` registration | Service (DI) | Startup/runtime | All five `GetConfigSetting` call sites would fail to resolve a value; `AudioVideoService`, `CallRecordingSystem`, and `CallRexServiceProxy` cannot construct valid file paths or vendor-service endpoint addresses.* |
| `AudioImportService.callRexMediaOutputPath` value | Configuration key | Runtime (import) | `ImportRecording` cannot compute a destination or backup file path; the import workflow fails.* |
| `AudioImportService.callRexServiceUrl` / `callRexStateServiceUrl` values | Configuration key | Runtime (construction) | `CallRecordingSystem` cannot construct its WCF proxies, so no CallRex on-demand or real-time operations can be performed.* |
| `AudioImportService.callRexRecordingBaseUrl` / `callRexRecordingPath` values | Configuration key | Runtime (recording lookup) | `CallRexServiceProxy.GetRecording`/`GetRecordings` cannot build a valid `RecordingUrl`/`AbsoluteFileLocation` for the returned `CallRecording`.* |

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

> **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\Services\Utilities\AudioVideo\AudioVideoService.cs`
- `Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\RecordingSystem.cs`
- `Application\SAIF.Application.Services.AudioVideo\Services\ClientProxies\ThirdParty\CallRexServiceProxy.cs`
- `Application\SAIF.Application.Services.AudioVideo\app.config`
- `Application\SAIF.Application.Services.AudioVideo\SAIF.Application.Services.AudioVideo.csproj`
- `Core\SAIF.Core\Core\Services\IEnvironmentService.cs`
- `Data\SAIF.Data.NHibernate\Factories\ConfigurationFactoryBase.cs`
- `Data\SAIF.Data.NHibernate\Factories\OracleConfigurationFactory.cs`
- `Data\SAIF.Data.NHibernate\Factories\SqlServerConfigurationFactory.cs`
