Menu
Latest
12 meetings · Prague, Jeju · 12–16 Oct
Reports
RAN1#126-bis · SA2#177

Glossary term · Protocol

Stateful proxy

Stateful Proxy (SIP Transaction Stateful Proxy)

Protocol →

Stateful proxy is a SIP proxy that maintains client and server transaction state machines during request processing to enable retransmission handling, forking, and response aggregation.

Introduced
Rel-2
Where
Services › IMS
Specifications
2 specs
Stateful proxy Description Purpose Neighbours Specifications

Description

A stateful proxy is a logical SIP entity that maintains the client and server transaction state machines defined by the SIP specification during the processing of a request. Unlike a stateless proxy, which simply forwards messages without retaining state, a stateful proxy creates and tracks transaction state for each request it processes. This state includes the request method, branch identifier, timers, and the set of responses received. The proxy acts as both a server (towards the upstream client) and a client (towards downstream servers or user agents), maintaining separate state machines for each role.

The core function of a stateful proxy is to manage SIP transactions reliably. When a request arrives, the proxy creates a server transaction and forwards the request downstream, creating a client transaction. It then waits for responses, which may arrive from multiple branches if the request was forked. The proxy aggregates these responses and forwards the best final response upstream. The transaction state machines handle retransmissions, timeouts, and error conditions according to SIP timers (e.g., Timer B, Timer F, Timer H). This ensures that lost messages are retransmitted and that the transaction completes correctly even in unreliable transport networks.

Stateful proxies are essential for advanced SIP features such as forking, where a single request is sent to multiple destinations simultaneously. The proxy collects responses from all branches and selects the appropriate final response to return to the caller. This requires maintaining state for each branch and correlating responses. Additionally, stateful proxies can perform header manipulation, authentication, and routing decisions based on the request and response state. They are commonly used in IMS (IP Multimedia Subsystem) networks, where P-CSCF, I-CSCF, and S-CSCF nodes act as stateful proxies to manage registration, session establishment, and service control.

It is important to distinguish a stateful proxy from a call stateful proxy. A stateful proxy maintains state only for the duration of a SIP transaction, which is typically short-lived (from request to final response). A call stateful proxy, on the other hand, maintains state for the entire duration of a call or dialog, which can span multiple transactions. The 3GPP definition explicitly clarifies that a stateful proxy is not the same as a call stateful proxy, emphasizing the transaction-level scope of state maintenance.

In 3GPP specifications, the stateful proxy concept is referenced in documents such as 24.228 (Signalling flows for the IP multimedia call control based on SIP and SDP) and 29.998 (Open Service Access (OSA) Application Programming Interface (API)). These specifications describe how SIP proxies within the IMS core network handle transactions to provide reliable session control. The stateful proxy model ensures that SIP signalling is robust, scalable, and capable of supporting complex services like call forwarding, conferencing, and presence.

Purpose & Motivation

The stateful proxy exists to provide reliable SIP transaction handling in IP-based multimedia networks. In early SIP deployments, stateless proxies were simple and efficient but could not handle retransmissions, forking, or response aggregation. As networks grew and services became more complex, the need for proxies that could maintain state during a transaction became evident. The stateful proxy solves the problem of unreliable transport by retransmitting requests and responses as needed, ensuring that signalling messages are not lost. It also enables advanced routing features such as forking, where a single request can be sent to multiple endpoints, and the proxy must collect and process multiple responses.

Historically, the concept of a stateful proxy was introduced in early SIP specifications (RFC 2543) and refined in RFC 3261. 3GPP adopted SIP as the signalling protocol for IMS in Release 5, and the stateful proxy became a fundamental building block for IMS core network nodes. The 3GPP definition evolved from a simple description of maintaining state for the duration of a SIP transaction to a more precise definition that references the client and server transaction state machines. This evolution reflects the maturation of SIP and the need for precise terminology in standards.

The stateful proxy addresses limitations of stateless proxies, which cannot handle retransmissions or forking. Without state, a stateless proxy cannot know whether a request has been received or whether a response is expected. Stateful proxies also enable security features such as authentication and authorization, as they can challenge requests and maintain state during the authentication exchange. In summary, the stateful proxy is essential for building robust, feature-rich SIP-based networks like IMS.

Release Timeline

Evolution Across Releases

An overview written from the defining specifications, not a verified change history. For the exact text, open the specifications listed below.

Rel-2 Initial

Initial definition: 'A logical entity that maintains state information at least for the duration of a SIP transaction.' This established the basic concept of a stateful proxy as a SIP entity that retains state during a transaction.

Definition refined to: 'logical entity that maintains state information at least for the duration of a SIP transaction, see RFC 3261 [3].' This added a reference to RFC 3261, aligning 3GPP terminology with the IETF SIP specification.

Wording changed to: 'logical entity that maintains the client and server transaction state machines defined by this specification during the processing of a request. Also known as a transaction stateful proxy. A stateful proxy is not the same as a call stateful proxy.' This revision provided a more precise technical description, explicitly referencing the client and server transaction state machines and clarifying the distinction from a call stateful proxy.

Definition carried over unchanged from Rel-8: 'logical entity that maintains the client and server transaction state machines defined by this specification during the processing of a request. Also known as a transaction stateful proxy. A stateful proxy is not the same as a call stateful proxy.'

Defining Specifications

3GPP specifications that define or reference Stateful proxy, with the latest known release. Sourced from the 3GPP document catalog — see methodology.

SpecificationTitleRelease
TS 24.228 v590 IP Multimedia Call Control Signaling Flows Rel-5 read
TR 29.998 v320 OSA API Mapping to CAP and MAP R99 read