---
title: Contract
summary: The WSDL-declared operations, messages, faults, and binding this proxy exposes.
status: draft
owner: SAIF.Core documentation
last_reviewed: 2026-09-24
---

# Contract

Sources: `Services/SAIF.Services.Web.Proxies/Service References/CallRexState/service.wsdl` (root, imports `Silverlight.wsdl`), with element shapes from `Silverlight.xsd` and `service1.xsd`. `Reference.cs` is used only for type names and base types, not as a contract source.

- **Root WSDL:** `service.wsdl`, `name="AgentStateService"`, `targetNamespace="http://tempuri.org/"` (`service.wsdl:2`); imports namespace `Silverlight` (`service.wsdl:25`).
- **Imported WSDL:** `Silverlight.wsdl`, `targetNamespace="Silverlight"` (`Silverlight.wsdl:2`).
- **Service:** `AgentStateService` (`service.wsdl:128`).

## Declared operations

### PortType `IAgentStateService` (namespace `Silverlight`, `Silverlight.wsdl:32-50`) — duplex contract

| Operation | Pattern | Input element (parts) | Output element | Evidence |
| --- | --- | --- | --- | --- |
| `RegisterForRealtimeFeedOnReports` | Request/response | `clientToken: guid`, `requestingUserId: guid` | `RegisterForRealtimeFeedOnReportsResult: ArrayOfExtendedRealtimeUserState` (DataService ns) | `Silverlight.wsdl:11-16,33-36`; `Silverlight.xsd:5-16` |
| `RegisterForRealtimeFeedOnReportsFiltered` | Request/response | `clientToken: guid`, `requestingUserId: guid`, `locationFilter: string`, `locationBlanksOnly: boolean`, `departmentFilter: string`, `departmentBlanksOnly: boolean` | `RegisterForRealtimeFeedOnReportsFilteredResult: ArrayOfExtendedRealtimeUserState` | `Silverlight.wsdl:17-22,37-40`; `Silverlight.xsd:20-35` |
| `UnregisterForRealtimeFeed` | One-way (input only) | `clientToken: guid` | — | `Silverlight.wsdl:23-25,41-43`; `Silverlight.xsd:39-42` |
| `KeepAlive` | One-way (input only) | `clientToken: guid` | — | `Silverlight.wsdl:26-28,44-46`; `Silverlight.xsd:46-49` |
| `ReceiveState` | **Callback** (output-only, server → client) | — | `userState: RealtimeUserState` (DataService ns) | `Silverlight.wsdl:29-31,47-49`; `Silverlight.xsd:53-56` |

`ReceiveState` is a server-initiated callback delivered to whatever type implements `IAgentStateServiceCallback` via the `InstanceContext` supplied at construction. No such implementation exists in this repository, so this operation has no repository-side handler.

### PortType `IClientAccessPolicy` (namespace `http://tempuri.org/`, `service.wsdl:42-47`)

| Operation | Input | Output | Evidence |
| --- | --- | --- | --- |
| `GetPolicy` | `GetPolicy` (empty) | `GetPolicyResult: StreamBody` (`http://schemas.microsoft.com/Message`) | `service.wsdl:36-47`; `service1.xsd:4-12` |

`GetPolicy` is inferred to be the conventional Silverlight cross-domain policy endpoint*. **No `<wsdl:binding>` or `<wsdl:port>` is declared for `IClientAccessPolicy`** (`service.wsdl:48-139`), so `ClientAccessPolicyClient` has no usable endpoint from the WSDL or `app.config`.

## Faults

No `<wsdl:fault>` elements are declared on either portType in either WSDL.

## Bindings declared in the WSDL

| Binding | Type | Policy | Evidence |
| --- | --- | --- | --- |
| `PollingDuplexHttpBinding_IAgentStateService` | `i0:IAgentStateService`, `soap12:binding` | `PollingDuplexHttpBinding_IAgentStateService_policy`: Duplex `MultipleMessagesPerPoll`, BinaryEncoding, UsingAddressing | `service.wsdl:3-11,48-87` |
| `WSDualHttpBinding_IAgentStateService` | `i0:IAgentStateService`, `soap12:binding` | `WSDualHttpBinding_IAgentStateService_policy`: RM `InactivityTimeout 600000 ms`, `AcknowledgementInterval 200 ms`, CompositeDuplex, OneWay, UsingAddressing | `service.wsdl:12-24,88-127` |

No binding is declared for `IClientAccessPolicy`.

## Related documentation
- [Client index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Operation map](operation-map.md)
- [Client reference](reference.md)
- [Consumption](consumption.md)
- [Dependencies](dependencies.md)
- [Tech debt](tech-debt.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts.

## Sources
- `Services/SAIF.Services.Web.Proxies/Service References/CallRexState/service.wsdl`
- `Services/SAIF.Services.Web.Proxies/Service References/CallRexState/Silverlight.wsdl`
- `Services/SAIF.Services.Web.Proxies/Service References/CallRexState/Silverlight.xsd`
- `Services/SAIF.Services.Web.Proxies/Service References/CallRexState/service1.xsd`
