/** * Check if the via header is external * @param viaHeader the via header to check * @return true if the via header is external, false otherwise */ public final boolean isViaHeaderExternal(ViaHeader viaHeader) { if (viaHeader != null) { return isExternal(viaHeader.getHost(), viaHeader.getPort(), viaHeader.getTransport()); } return true; }
public boolean equals(Object other) { if (other==this) return true; if (other instanceof ViaHeader) { final ViaHeader o = (ViaHeader) other; return getProtocol().equalsIgnoreCase( o.getProtocol() ) && getTransport().equalsIgnoreCase( o.getTransport() ) && getHost().equalsIgnoreCase( o.getHost() ) && getPort() == o.getPort() && equalParameters( o ); } return false; }
return null; } else { return via.getHost();
public String getRemoteHost() { if(getTransaction() != null) { if(((SIPTransaction)getTransaction()).getPeerPacketSourceAddress() != null && ((SIPTransaction)getTransaction()).getPeerPacketSourceAddress().getHostAddress() != null) { return ((SIPTransaction)getTransaction()).getPeerPacketSourceAddress().getHostAddress(); } else { return ((SIPTransaction)getTransaction()).getPeerAddress(); } } else { ViaHeader via = (ViaHeader) message.getHeader(ViaHeader.NAME); if(via == null) { return null; } else { return via.getHost(); } } }
host = topmostViaHeader.getHost(); port = topmostViaHeader.getPort();
public String getRemoteAddr() { if(getTransaction() != null) { if(((SIPTransaction)getTransaction()).getPeerPacketSourceAddress() != null && ((SIPTransaction)getTransaction()).getPeerPacketSourceAddress().getHostAddress() != null) { return ((SIPTransaction)getTransaction()).getPeerPacketSourceAddress().getHostAddress(); } else { return ((SIPTransaction)getTransaction()).getPeerAddress(); } } else { ViaHeader via = (ViaHeader) message.getHeader(ViaHeader.NAME); // https://code.google.com/p/sipservlets/issues/detail?id=137 boolean isExternal = sipFactoryImpl.getSipApplicationDispatcher().isViaHeaderExternal(via); if(message instanceof Request && !isExternal) { // locally generated messages should return null as per Javadoc return null; } if(via == null) { return null; } else { return via.getHost(); } } }
if(!viaHeader.getHost().equalsIgnoreCase(ipAddressToCheckAgainst) || !viaHeader.getTransport().equalsIgnoreCase(sipConnector.getTransport()) || viaHeader.getPort() != sipConnector.getPort()) {
String viaHost = via.getHost(); if(viaHost.endsWith(".invalid")) { via.setHost(getPeerAddress());