/** * Performs strict router fix according to RFC3261 section 16.6 step 6 * * <p>pre: top route header in request has no 'lr' parameter in URI post: request-URI added as * last route header, new req-URI = top-route-URI */ public void fixStrictRouting(SIPRequest req) { RouteList routes = req.getRouteHeaders(); Route first = (Route) routes.getFirst(); SipUri firstUri = (SipUri) first.getAddress().getURI(); routes.removeFirst(); // Add request-URI as last Route entry AddressImpl addr = new AddressImpl(); addr.setAddess(req.getRequestURI()); // don't clone it Route route = new Route(addr); routes.add(route); // as last one req.setRequestURI(firstUri); if (sipStack.isLoggingEnabled()) { sipStack.getStackLogger().logDebug("post: fixStrictRouting" + req); } }