@Override public Set<String> resolveHost(String host) { Set<String> ipAddresses = new CopyOnWriteArraySet<String>(); Queue<Hop> hops = dnsServerLocator.resolveHostByAandAAAALookup(host, -1, null); if(hops != null) { for (Hop hop : hops) { ipAddresses.add(hop.getHost()); } } return ipAddresses; }
for (Hop hop : hops) { if(logger.isDebugEnabled()) { logger.debug("Checking Hop " + hop.getHost() + "/" + portChecked + ":" + tmpTransport.toLowerCase() + " against existing listening points"); listeningPoint = extendedListeningPointsCacheMap.get(hop.getHost() + "/" + portChecked + ":" + tmpTransport.toLowerCase()); if(listeningPoint != null) { if(logger.isDebugEnabled()) {
String host = hop.getHost(); String transport = hop.getTransport(); if(transport==null) {
public Hop resolveAddress(Hop hop) { String hopHost = hop.getHost(); int hopPort = hop.getPort(); String hopTransport = hop.getTransport();
public Hop resolveAddress(Hop inputAddress) { if (inputAddress.getPort() != -1) return inputAddress; else { return new HopImpl(inputAddress.getHost(), MessageProcessor.getDefaultPort(inputAddress.getTransport()),inputAddress.getTransport()); } }
@Override public List<SipURI> locateURIs(SipURI uri) { List<SipURI> uris = new CopyOnWriteArrayList(); if (uri instanceof SipURIImpl && createAddressFactory != null) { SipURIImpl uriImpl = (SipURIImpl) uri; Queue<Hop> hops = dnsServerLocator.locateHops(uriImpl.getSipURI()); if(hops != null) { for (Hop hop : hops) { javax.sip.address.SipURI createSipURI; try { //use null as user so this uri may be used potentially //as Route Header createSipURI = createAddressFactory.createSipURI(null, hop.getHost()); createSipURI.setPort(hop.getPort()); createSipURI.setTransportParam(hop.getTransport()); SipURI sipURI = new SipURIImpl(createSipURI, ModifiableRule.NotModifiable); uris.add(sipURI); } catch (ParseException ex) { logger.debug("Error creating SipURI.", ex); } } } } return uris; }
/** * * @param hop * @param request */ private void addDnsRoute(Hop hop, final Request request) throws ParseException, SipException { if(hop != null && sipFactoryImpl.getSipApplicationDispatcher().isExternal(hop.getHost(), hop.getPort(), hop.getTransport())) { javax.sip.address.SipURI nextHopUri = SipFactoryImpl.addressFactory.createSipURI(null, hop.getHost()); nextHopUri.setLrParam(); nextHopUri.setPort(hop.getPort()); if(hop.getTransport() != null) { nextHopUri.setTransportParam(hop.getTransport()); } // Deal with http://code.google.com/p/mobicents/issues/detail?id=2346 nextHopUri.setParameter(DNSAwareRouter.DNS_ROUTE, Boolean.TRUE.toString()); final javax.sip.address.Address nextHopRouteAddress = SipFactoryImpl.addressFactory.createAddress(nextHopUri); final RouteHeader nextHopRouteHeader = SipFactoryImpl.headerFactory.createRouteHeader(nextHopRouteAddress); if(logger.isDebugEnabled()) { logger.debug("Adding next hop found by RFC 3263 lookups as route header" + nextHopRouteHeader); } request.addFirst(nextHopRouteHeader); } }
Hop lookedupHop = hops.peek(); if(!hop.equals(lookedupHop)) { usePublicAddress = !isIPAddressPartOfPrivateNetwork(lookedupHop.getHost());
targetHost.setHostname(nextHop.getHost()); targetHostPort = new HostPort(); targetHostPort.setHost(targetHost);
for(String lpIpAddress : mobicentsExtendedListeningPoint.getIpAddresses()) { if(logger.isTraceEnabled()) { logger.trace("AnyLocalAddress so checking the list of ip addresses " + lpIpAddress + " to see if one matches the destination hop" + hop.getHost()); if(lpIpAddress.equalsIgnoreCase(hop.getHost())) { ipAddressToCheckAgainst = lpIpAddress; if(logger.isTraceEnabled()) { logger.trace("AnyLocalAddress using ip address " + lpIpAddress + " matching the destination hop" + hop.getHost());
/** * Creates a client transaction to handle a new request. Gets the real * message channel from the superclass, and then creates a new client * transaction wrapped around this channel. * * @param nextHop * Hop to create a channel to contact. */ public MessageChannel createMessageChannel(SIPRequest request, MessageProcessor mp, Hop nextHop) throws IOException { // Create a new client transaction around the // superclass' message channel // Create the host/port of the target hop Host targetHost = new Host(); targetHost.setHostname(nextHop.getHost()); HostPort targetHostPort = new HostPort(); targetHostPort.setHost(targetHost); targetHostPort.setPort(nextHop.getPort()); MessageChannel returnChannel = mp.createMessageChannel(targetHostPort); return returnChannel; }
@Override public void send(SIPRequest ackRequest) throws SipException, IOException { hop = sipStack.getNextHop(ackRequest); if (hop == null) throw new SipException("No route!"); if (logger.isLoggingEnabled(LogWriter.TRACE_DEBUG)) logger.logDebug("hop = " + hop); ListeningPointImpl lp = (ListeningPointImpl) sipProvider .getListeningPoint(hop.getTransport()); if (lp == null) throw new SipException( "No listening point for this provider registered at " + hop); InetAddress inetAddress = InetAddress.getByName(hop.getHost()); MessageChannel messageChannel = lp.getMessageProcessor() .createMessageChannel(inetAddress, hop.getPort()); messageChannel.sendMessage(ackRequest); }
} else if((hop != null && hop.getHost().equals(originalRequest.getInitialRemoteAddr()) && hop.getPort() == originalRequest.getInitialRemotePort()) || (hop == null && (contactHasObParam || poppedRouteHasObParam))) { if(logger.isDebugEnabled()) { logger.debug("RFC5626 Outgoing Case " + request); sipFactoryImpl.getAddressFactory().createSipURI(null, hop.getHost()); routeURI.setPort(hop.getPort()); routeURI.setTransportParam(hop.getTransport());
|| !hop.getHost().equals( this.peerAddress.getHostAddress())) { topMostVia.setParameter(Via.RECEIVED, this.peerAddress
InetAddress hopAddr = InetAddress.getByName(hop.getHost());
Hop hop = ((SIPClientTransaction) challengedTransaction).getNextHop(); SipURI sipUri = (SipURI) reoriginatedRequest.getRequestURI(); sipUri.setMAddrParam(hop.getHost()); if ( hop.getPort() != -1 ) sipUri.setPort(hop.getPort());
peerAddressAdvertisedInHeaders = hop.getHost(); if(logger.isLoggingEnabled(LogWriter.TRACE_DEBUG)) { logger.logDebug("3.Storing peerAddressAdvertisedInHeaders = " + peerAddressAdvertisedInHeaders + " for this channel " + this + " key " + key); || !hop.getHost().equals( this.peerAddress.getHostAddress())) { v.setParameter(Via.RECEIVED, this.peerAddress
hop = sipStack.getNextHop(ackRequest); this.raiseIOException(hop.getHost(), hop.getPort(), hop .getTransport()); } catch (SipException ex) {
if (logger.isLoggingEnabled(LogWriter.TRACE_DEBUG)) { logger.logDebug( "SIPDialog::sendRequest:Using hop = " + hop.getHost() + " : " + hop.getPort());