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¶
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.csApplication\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\RecordingSystem.csApplication\SAIF.Application.Services.AudioVideo\Services\ClientProxies\ThirdParty\CallRexServiceProxy.csApplication\SAIF.Application.Services.AudioVideo\app.configApplication\SAIF.Application.Services.AudioVideo\SAIF.Application.Services.AudioVideo.csprojCore\SAIF.Core\Core\Services\IEnvironmentService.csData\SAIF.Data.NHibernate\Factories\ConfigurationFactoryBase.csData\SAIF.Data.NHibernate\Factories\OracleConfigurationFactory.csData\SAIF.Data.NHibernate\Factories\SqlServerConfigurationFactory.cs