Skip to content

CallRexServiceProxy

CallRexServiceProxy wraps the generated WCF client Core.ThirdParty.CallRex.ClientServiceClient, providing the recording retrieval and control operations that CallRecordingSystem delegates to; see CallRex WCF proxy operations.

Purpose

  • Authenticates against the CallRex ClientService WCF endpoint (http://localhost:8002/ClientService in app.config) and attaches SOAP authorization headers to every state-changing call.
  • Exposes recording retrieval (GetAllRecordings, GetRecordings, GetRecording), user retrieval (GetUsers), and recording control operations (MarkInvalid, DeleteRecording, start/stop/pause/resume).

Context

  • Namespace: SAIF.Services.ClientProxies.ThirdParty
  • Assembly/package: SAIF.Application.Services.AudioVideo.32
  • Implements: IDisposable

Public members

Member Signature Purpose
CallRexServiceProxy(...) CallRexServiceProxy(string serviceUrl, IEnvironmentService environmentService, ILogService logService) Constructs the proxy and eagerly calls _webService.Login("AI", "AudioImporter") against the configured endpoint.
MarkInvalid void MarkInvalid(CallRecording recording) Calls the CallRex UpdateAttachedDataByCallLogID SOAP operation, setting Description = "Invalid:" + recording.Description.
DeleteRecording bool DeleteRecording(Guid recordingId) Calls _webService.DeleteRecording(...); required to succeed for Import call recording to complete (BR-AV-17).
GetAllRecordings IEnumerable<CallRecording> GetAllRecordings() Retrieves every recording known to CallRex.*
GetRecordings(Guid) IEnumerable<CallRecording> GetRecordings(Guid userId) Retrieves recordings for a specific CallRex user.*
GetRecording(Guid) CallRecording GetRecording(Guid recordingId) Retrieves a single recording by ID.
GetUsers IEnumerable<CallUser> GetUsers() Retrieves all CallUser records known to CallRex.*
StartRecording void StartRecording(...) Starts recording a call, wrapped in AuthorizeClientServiceCall.*
StopRecording void StopRecording(...) Stops recording a call, wrapped in AuthorizeClientServiceCall.*
PauseRecording void PauseRecording(...) Pauses an in-progress recording, wrapped in AuthorizeClientServiceCall.*
ResumeRecording void ResumeRecording(...) Resumes a paused recording, wrapped in AuthorizeClientServiceCall.*
Dispose void Dispose() Closes the underlying WCF client channel.

Behavioral notes

  • All state-changing calls (MarkInvalid, DeleteRecording, StartRecording, StopRecording, PauseRecording, ResumeRecording) are wrapped in AuthorizeClientServiceCall, which adds custom SOAP headers Username/Password (hard-coded service-account credentials) to every outgoing message via OperationContextScope. This is a documented configuration/credential-management risk — see Configuration.
  • The endpoint identity is the SPN qmssvc@corp.saif.com, configured in app.config.

Constraints and usage notes

  • Construction eagerly performs a login SOAP call; a proxy instance should not be constructed unless the endpoint is reachable and expected to be used immediately.*

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\ClientProxies\ThirdParty\CallRexServiceProxy.cs
  • Application\SAIF.Application.Services.AudioVideo.32\app.config
  • Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\AudioVideoService.cs