Re: proxy - wrong postprocess routing info ?!
"M. Rangnathan" <[email protected]>
| Newsgroups | gmane.comp.voip.nist-sip |
|---|---|
| Message-ID | <[email protected]> |
Thanks. Indeed, the proxy needs to use the latest Routing algorithm
(part of JSIP 1.2) and be made dialog independent.
Any takers for helping upgrade the proxy to JAIN-SIP 1.2? I can share
ownership or the project with the enthusisast who would like to take it
on. I am trying to push on our project at NIST (for which I get paid)
so the proxy, which needs a couple of weeks of dedicated work work is
falling behind. It will be upgraded after the TCK is done but if I can
find some help, it does not have to wait.
Regards,
Ranga.
stefan wrote:
>RFC 3261 says :
>
>6. Postprocess routing information
>
> If the copy contains a Route header field, the proxy MUST
> inspect the URI in its first value. If that URI does not
> contain an lr parameter, the proxy MUST modify the copy as
> follows:
>
> - The proxy MUST place the Request-URI into the Route header
> field as the last value.
>
> - The proxy MUST then place the first Route header field value
> into the Request-URI and remove that value from the Route
> header field.
>
> Appending the Request-URI to the Route header field is part of
> a mechanism used to pass the information in that Request-URI
> through strict-routing elements. "Popping" the first Route
> header field value into the Request-URI formats the message the
> way a strict-routing element expects to receive it (with its
> own URI in the Request-URI and the next location to visit in
> the first Route header field value).
>
>Which means, that the first Route header field value is to be removed, if it
>does NOT contain a lr paramter (beside putting it into the Request-URI and
>adding the original Request-URI to the end of Route headers)
>But in STEP 6 (6. Postprocess routing information) of class RequestForwarding,
>method forwardRequest, something absolute different is done:
>The first Route header field value is removed, if it contains the proxy
>address and a lr parameter :
>
> // Strip first route if it is the proxy UIR adn lr parameter
>
> ListIterator routes =
> clonedRequest.getHeaders(RouteHeader.NAME);
> if (routes!=null && routes.hasNext() ) {
>
> RouteHeader routeHeader = (RouteHeader) routes.next();
> Address routeAddress=routeHeader.getAddress();
> URI routeURI=routeAddress.getURI();
>
> if ( routeURI.isSipURI() &&
> ((SipURI)routeURI).hasLrParam() ) {
>
> String host=((SipURI)routeURI).getHost();
>
> if ( stackIPAddress.equals(host)) {
> routes.remove();
>
> if (ProxyDebug.debug)
> ProxyDebug.println
> ("Proxy, forwardRequest(), (STEP 6) we
>removed"+
> " the first Route header field value: it
>contained"+
> " the proxy address and a lr parameter");
> }
> else {
>
> if (ProxyDebug.debug)
> ProxyDebug.println
> ("RequestForwarding, forwardRequest(), (STEP
>6)"+
> "lr parameter detected but no match...");
> }
> }
> else
> if (ProxyDebug.debug)
> ProxyDebug.println
> ("RequestForwarding, forwardRequest(), (STEP 6)"+
> " no Postprocess routing information to do " +
> "(the route has no lr parameter)...");
> }
> else {
>
> if (ProxyDebug.debug)
> ProxyDebug.println("RequestForwarding, forwardRequest(),
>(STEP 6)"+
> " no Postprocess routing information to do (No routes
>detected)...");
> }
>
>
>
>
>
>
>
>_______________________________________________
>nist-sip mailing list
>[email protected]
>http://www-x.antd.nist.gov/mailman/listinfo/nist-sip
>
>
--
M. Ranganathan
Advanced Networking Technologies Division,
National Institute of Standards and Technology (NIST),
100 Bureau Drive, Stop 8920, Gaithersburg, MD 20899.
tel:301 975 3664 , fax:301 590 0932 http://w3.antd.nist.gov/
Advanced Networking Technologies For the People!