/** * Creates a new RouteHeader based on the newly supplied address value. * * @param address - the new Address object of the address. * @return the newly created RouteHeader object. */ public RouteHeader createRouteHeader(Address address) { if (address == null) throw new NullPointerException("null address arg"); Route route = new Route(); route.setAddress(address); return route; }
/** * Encode into canonical form. * Acknowledgement: contains a bug fix for a bug reported by * Laurent Schwizer * *@return a canonical encoding of the header. */ public String encodeBody() { return encodeBody(new StringBuilder()).toString(); }
/** * Order is important when comparing route lists. */ public boolean equals(Object other) { if (!(other instanceof RouteList)) return false; RouteList that = (RouteList) other; if (this.size() != that.size()) return false; ListIterator<Route> it = this.listIterator(); ListIterator<Route> it1 = that.listIterator(); while (it.hasNext()) { Route route = (Route) it.next(); Route route1 = (Route) it1.next(); if (!route.equals(route1)) return false; } return true; }
RecordRoute rr = (RecordRoute) li.previous(); Route route = new Route(); AddressImpl address = ((AddressImpl) ((AddressImpl) rr .getAddress()).clone()); route.setAddress(address); route.setParameters((NameValueList) rr.getParameters() .clone()); RecordRoute rr = (RecordRoute) li.next(); Route route = new Route(); AddressImpl address = ((AddressImpl) ((AddressImpl) rr .getAddress()).clone()); route.setAddress(address); route.setParameters((NameValueList) rr.getParameters() .clone()); routeList.add(route); SipURI sipUri = (SipURI) (((Route) it.next()).getAddress() .getURI()); if (!sipUri.hasLrParam()) {
/** * Performs strict router fix according to RFC3261 section 16.6 step 6 * * 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 (logger.isLoggingEnabled(LogWriter.TRACE_DEBUG)) { logger.logDebug("post: fixStrictRouting" + req); } }
while (i.hasNext()) { javax.sip.address.Address javaxAddress = i.next(); RouteHeader routeHeader = new Route((gov.nist.javax.sip.address.AddressImpl) javaxAddress); request.addHeader(routeHeader);
if (route != null && rr.getAddress().equals( route.getAddress())) { routeList.removeFirst(); } else
while (li.hasNext()) { Route route = (Route) li.next(); retval.add((Route) route.clone());
this.lexer.SPorHT(); while (true) { Route route = new Route(); super.parse(route); routeList.add(route);
URI uri = route.getAddress().getURI(); if (uri.isSipURI()) { SipURI sipUri = (SipURI) uri;
this.lexer.SPorHT(); while (true) { Route route = new Route(); super.parse(route); routeList.add(route);
URI uri = route.getAddress().getURI(); if (uri.isSipURI()) { SipURI sipUri = (SipURI) uri;
uri4transport = ((SipURI) r.getAddress().getURI()); } else { // should be !=null, checked above uri4transport = ((SipURI) this.getRemoteTarget().getURI());
final RouteList routes = sipRequest.getRouteHeaders(); final Route route = (Route) routes.getFirst(); final SipUri uri = (SipUri) route.getAddress().getURI(); final HostPort hostPort = uri.getHostPort(); int port;