back to the IP address of the proxy. This Record-Routeheader is forwarded
with the request, stored by the UA server, and included in the response sent
back to the UA client that originated the request. All future requests during the
session must now include a Routeheader that forces the request to route
through the proxy.
An example with one proxy that Record-Routes and another that does
not is shown in Figure 10.5.
In this example, proxy A needs to be included in all future SIP messaging
between the UAs, while proxy B does not. As a result, proxy A inserts a
Record-Routeheader, while proxy B does not add itself to the Record-
Routeheader. Therefore, the ACKand the BYErequests are routed through
proxy A but bypass proxy B. Note that the Routeheader always contains
information about the next hop, not the current hop. As a result, in this exam-
ple, since the ACKof Message 13 is sent to proxy A, the Routeheader does not
contain the URL of proxy A, but instead contains the URL of the next hop,
which is UA2. The same is true for the BYEof Message 15. After the last URL
in the Routeheader is used, the header is removed from the request, as it is in
Messages 14 and 16. Also note that the Routeheader is never present in
responses, because they are always routed back through the same set of prox-
ies taken by the request.
Figure 10.5 SIP proxy Record-Routeexample
Client Proxy A
1 INVITE
2 INVITE R-R : A
13 ACK
Proxy A Record-
Routes (R-R)
but Proxy B does
not.
The ACK and
BYE are routed
through Proxy A
but not Proxy B.
5 100 Trying
Proxy B Server
11 200 OK R-R : A
12 ACK Route : A
16 200 OK
Media Session
No More Media Session
Media Session
10 180 Ringing R-R : A
3 100 Trying
15 BYE
7 180 Ringing R-R : A
9 200 OK R-R : A
6 180 Ringing R-R : A
17 200 OK
8 200 OK R-R : A
14 BYE Route : A
4 INVITE R-R : A
182 Chapter 10