public Connection createConnection(String netType, String addrType, String addr) throws SdpException { Connection c = new ConnectionField(); c.setNetworkType(netType); c.setAddressType(addrType); c.setAddress(addr); return c; }
@SuppressWarnings("unused") private static void fix(final Connection connection, final String externalIp) throws UnknownHostException, SdpException { if (connection != null) { if (Connection.IN.equals(connection.getNetworkType())) { if (Connection.IP4.equals(connection.getAddressType())) { final InetAddress address = DNSUtils.getByName(connection.getAddress()); if (address.isSiteLocalAddress() || address.isAnyLocalAddress() || address.isLoopbackAddress()) { final String ip = address.getHostAddress(); connection.setAddress(externalIp); } } } } }
private static void fix(final Connection connection, final String externalIp) throws UnknownHostException, SdpException { if (connection != null) { if (Connection.IN.equals(connection.getNetworkType())) { if (Connection.IP4.equals(connection.getAddressType())) { final InetAddress address = DNSUtils.getByName(connection.getAddress()); final String ip = address.getHostAddress(); if (!IPUtils.isRoutableAddress(ip)) { connection.setAddress(externalIp); } } } } }
private byte[] patchMedia(final String realIp, final byte[] data) throws UnknownHostException, SdpException { final String text = new String(data); final SessionDescription sdp = SdpFactory.getInstance().createSessionDescription(text); final Connection connection = sdp.getConnection(); if(Connection.IN.equals(connection.getNetworkType()) && Connection.IP4.equals(connection.getAddressType())) { final InetAddress address = InetAddress.getByName(connection.getAddress()); final String ip = address.getHostAddress(); if(!IPUtils.isRoutableAddress(ip)) { connection.setAddress(realIp); } } return sdp.toString().getBytes(); }