generates the ACK request by using many of the components of the state stored as part of the dialog:
the URI in the To field of the request
is set to the remote URI from the dialog state;
the tag in the To header field of the request
is set to the remote tag of the dialog ID;
the From URI of the
request is set to the local URI from the dialog state;
the tag in the From header field of the request
is set to the local tag of the dialog ID;
the Call-ID of the request is set to the Call-ID
of the dialog;
uses the remote target and route set to build the Request-URI and Route header field of the request:
the route set is not empty, and the first URI in the route set
contains the lr (loose routing) parameter: the UAC places
the remote target URI into the Request-URI
and includes a Route
header field containing the route set values in order, including all
parameters;
note: if the route set was empty, the UAC would place the remote target URI
into the Request-URI and would not add a Route header field to
the request;
P1:
inspects the Request-URI (sip:bob@u2.biloxi.com) and
does not change it because it is not responsible for the resource indicated in this URI;
sees that it is the first value in the Route header field so it removes that value;
forwards the request to the resource indicated in the topmost
Route header field by applying DNS procedures.
P2:
inspects the Request-URI: it is not responsible
for "u2.biloxi.com" (it is responsible for "biloxi.com", not "u2.biloxi.com")
so it does not change it;
sees that it is the first value in the Route header field
so it removes that value;
forwards the request to the resource indicated in the
Request-URI (the route set now is empty)
by applying DNS procedures.