package javaforce.voip;
/** SIP TLS Transport
*
* Client needs to only connect to one endpoint.
*
* @author pquiring
*
* Created : Jan 29, 2014
*/
import java.net.*;
import javax.net.ssl.*;
import javaforce.*;
public class SIPTLSTransportServer extends SIPTCPTransportServer {
private static TrustManager[] trustAllCerts = new TrustManager[] {
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {}
public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {}
}
};
public String getName() { return "TLS"; }
public boolean open(int localport) {
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
SSLServerSocketFactory sslsocketfactory = (SSLServerSocketFactory) sc.getServerSocketFactory(); //this method will work with untrusted certs
ss = sslsocketfactory.createServerSocket();
ss.bind(new InetSocketAddress(InetAddress.getLocalHost(), localport));
new WorkerAccepter().start();
} catch (Exception e) {
JFLog.log(e);
}
return true;
}
}