 common type of SIP proxy is a transaction stateful proxy. A transaction stateful proxy keeps state about a transaction but only for the dura- tion that the request is pending. For example, a transaction stateful proxy would keep state when it receives an INVITE request until it received a 200 OK or a final failure response (e.g., 404 Not Found). After that, it would destroy the state information. This allows a proxy to perform useful search services but minimize the amount of state storage required. One such example of a search service is a proxy server that receives an INVITE request, then forwards it to a number of locations at the same time. This "forking" proxy server keeps track of each of the outstanding requests and the response to each, as shown in Figure 3.4. This is useful if the location service or database lookup returns multiple possible locations for the called party that need to be tried. In the example of Figure 3.4, the INVITE contains: INVITE sip: support@chaos.info SIP/2.0 Via: SIP/2. 0/UDP 45.2.32.1:5060 ;branch=z9hG4bK67865 Max-Forwards: 70 To: <sip: :support@chaos.info> From: A. N. Sarkovskii<sip:sarkovskii@45.2.32.1>;tag=7643545 Call-ID: 0140092501 CSeq: 1 INVITE Subject: Bifurcation Question Contact: <sip: :sarkovskii@45.2.32.1> Content-Type: application/sdp Content-Length: (SDP not shown) The INVITE is received by the chaos. info proxy server, which forks to two user agents. Each user agent begins alerting, sending two provisional responses back to Sarkovskii. They are: SIP/2.0 180 Ringing Via: SIP/2.0/UDP 45.2.32.1:5060;branch=z9hG4bK67865 To: <sip :support@chaos.info>;tag=343214112 From: A. N. Sarkovskii<sip:sarkovskii@45.2.32.1>;tag=7643545 Call-ID: 0140092501 CSeq: 1 INVITE Contact: <sip:agent42@67.42.2.1> Content-Length: 0 SIP Clients and Servers Sarkovskii Forking Agent 42 Agent 7 proxy INVITE INVITE 100 Trying INVITE 180 Ringing 180 Ringing 180 Ringing 180 Ringing 200 OK 200 OK CANCEL Media Session 200 OK 487 Request Terminated Figure 3.4 Forking proxy operation. SIP/2.0 180 Ringi