Subject: [Sip] proxy routing of a request

From: Juha Heinanen <[email-masked]>
Date: Mon, 30 Jul 2001 12:02:40 +0300 (EEST)

ther first paragraph of chapter 16 of bis-03 says:

Record routing is the process whereby a proxy server can request to
receive all messages between two UAs for a particular call leg. The
proxy accomplishes this by inserting a header, called Record-Route into
the initial request that begins the call leg. The user agents use these
headers to construct a set of Route headers, that gets inserted into
subsequent requests in the call leg. The Route headers contain a set of
proxies that the request must visit on its way from one UA to
another. Proxies use these to forward the requests, much like strict IP
source routing.

the above is not true, since if an invite arrives at the uas with only
one proxy listed in the record-route, according to 16.2 the route-set
contains

uri-from-the-record-route
uri-from-the-contact

when the uas then sends a bye, according to 16.4 the request-uri will
contain the uri of the proxy that inserted the record-route and the
route header will contain the uri of the contact:

The request is constructed as specified in Section 15.4. The UA then
takes the list of URI in the route set. The top URI is inserted into the
request URI of the request, including all parameters. Any URI parameters
not allowed in the request URI MUST then be stripped. Each of the
remaining URIs (if any) from the route set, including all URI
parameters, are placed into a Route header into the request, in order.

as the result, the route header of the bye will not contain uri of the
the record-routing proxy as the first paragraph claims.

one could say that the first paragraph just gives an overall idea of
what happens and is not intended as an accurate description.  the
problem, however, seems to be more than editorial, since if the uas is
using another proxy to route its requests, this other proxy will route
the bye according to 16.5 as follows:

When a proxy receives a request, it MUST check for the existence of a
Route header. If one exists, it MUST pop that Route header, and place it
(including all URI parameters) into the Request-URI.

in this case the request-uri contains the uri of the proxy, but since
there is also a route header containing the contact uri, this other
proxy will forget the request-uri and route the bye directly to the uac
that originally sent the invite.  as the result, the very idea of the
record-routing proxy wanting to be on the path of subsequent requests
gets lost.

section 16.4.1 talks about UAs and outbound proxies, but i don't see
that the text would change what i described above, since the main rule
still is:

A UA which uses a local outbound proxy, and attempts to send a subequent
request in a call leg with a route set, SHOULD use the procedures in
Section 16.4.

the rest of the section seems to apply only to dns uncapable UAs.

what is the point that i'm missing here?

-- juha

_______________________________________________
Sip mailing list  http://www.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [email-masked] for questions on current sip
Use [email-masked] for new developments on the application of sip