Search in sources :

Example 1 with DefaultSmppSession

use of com.cloudhopper.smpp.impl.DefaultSmppSession in project smscgateway by RestComm.

the class TestSmppClient method createSession.

protected DefaultSmppSession createSession(Channel channel, SmppSessionConfiguration config, SmppSessionHandler sessionHandler) throws SmppTimeoutException, SmppChannelException, InterruptedException {
    TestSmppSession session = new TestSmppSession(SmppSession.Type.CLIENT, config, channel, sessionHandler, monitorExecutor);
    // add SSL handler
    if (config.isUseSsl()) {
        SslConfiguration sslConfig = config.getSslConfiguration();
        if (sslConfig == null)
            throw new IllegalStateException("sslConfiguration must be set");
        try {
            SslContextFactory factory = new SslContextFactory(sslConfig);
            SSLEngine sslEngine = factory.newSslEngine();
            sslEngine.setUseClientMode(true);
            channel.getPipeline().addLast(SmppChannelConstants.PIPELINE_SESSION_SSL_NAME, new SslHandler(sslEngine));
        } catch (Exception e) {
            throw new SmppChannelConnectException("Unable to create SSL session]: " + e.getMessage(), e);
        }
    }
    // add the thread renamer portion to the pipeline
    if (config.getName() != null) {
        channel.getPipeline().addLast(SmppChannelConstants.PIPELINE_SESSION_THREAD_RENAMER_NAME, new SmppSessionThreadRenamer(config.getName()));
    } else {
    // logger.warn("Session configuration did not have a name set - skipping threadRenamer in pipeline");
    }
    // create the logging handler (for bytes sent/received on wire)
    SmppSessionLogger loggingHandler = new SmppSessionLogger(DefaultSmppSession.class.getCanonicalName(), config.getLoggingOptions());
    channel.getPipeline().addLast(SmppChannelConstants.PIPELINE_SESSION_LOGGER_NAME, loggingHandler);
    // add a writeTimeout handler after the logger
    if (config.getWriteTimeout() > 0) {
        WriteTimeoutHandler writeTimeoutHandler = new WriteTimeoutHandler(new org.jboss.netty.util.HashedWheelTimer(), /* writeTimeoutTimer */
        config.getWriteTimeout(), TimeUnit.MILLISECONDS);
        channel.getPipeline().addLast(SmppChannelConstants.PIPELINE_SESSION_WRITE_TIMEOUT_NAME, writeTimeoutHandler);
    }
    // add a new instance of a decoder (that takes care of handling frames)
    channel.getPipeline().addLast(SmppChannelConstants.PIPELINE_SESSION_PDU_DECODER_NAME, new SmppSessionPduDecoder(session.getTranscoder()));
    // create a new wrapper around a session to pass the pdu up the chain
    channel.getPipeline().addLast(SmppChannelConstants.PIPELINE_SESSION_WRAPPER_NAME, new SmppSessionWrapper(session));
    return session;
}
Also used : SmppSessionThreadRenamer(com.cloudhopper.smpp.channel.SmppSessionThreadRenamer) SSLEngine(javax.net.ssl.SSLEngine) SmppSessionPduDecoder(com.cloudhopper.smpp.channel.SmppSessionPduDecoder) SmppSessionWrapper(com.cloudhopper.smpp.channel.SmppSessionWrapper) WriteTimeoutHandler(org.jboss.netty.handler.timeout.WriteTimeoutHandler) DefaultSmppSession(com.cloudhopper.smpp.impl.DefaultSmppSession) SslHandler(org.jboss.netty.handler.ssl.SslHandler) SmppChannelException(com.cloudhopper.smpp.type.SmppChannelException) SmppTimeoutException(com.cloudhopper.smpp.type.SmppTimeoutException) SmppChannelConnectException(com.cloudhopper.smpp.type.SmppChannelConnectException) UnrecoverablePduException(com.cloudhopper.smpp.type.UnrecoverablePduException) RecoverablePduException(com.cloudhopper.smpp.type.RecoverablePduException) SslContextFactory(com.cloudhopper.smpp.ssl.SslContextFactory) SmppSessionLogger(com.cloudhopper.smpp.channel.SmppSessionLogger) SslConfiguration(com.cloudhopper.smpp.ssl.SslConfiguration) SmppChannelConnectException(com.cloudhopper.smpp.type.SmppChannelConnectException)

Example 2 with DefaultSmppSession

use of com.cloudhopper.smpp.impl.DefaultSmppSession in project load-balancer by RestComm.

the class ClientConnectOnly method bind.

@Override
public SmppSession bind(SmppSessionConfiguration config, SmppSessionHandler sessionHandler) throws SmppTimeoutException, SmppChannelException, SmppBindException, UnrecoverablePduException, InterruptedException {
    DefaultSmppSession session = null;
    // connect to the remote system and create the session
    session = doOpen(config, sessionHandler);
    return session;
}
Also used : DefaultSmppSession(com.cloudhopper.smpp.impl.DefaultSmppSession)

Aggregations

DefaultSmppSession (com.cloudhopper.smpp.impl.DefaultSmppSession)2 SmppSessionLogger (com.cloudhopper.smpp.channel.SmppSessionLogger)1 SmppSessionPduDecoder (com.cloudhopper.smpp.channel.SmppSessionPduDecoder)1 SmppSessionThreadRenamer (com.cloudhopper.smpp.channel.SmppSessionThreadRenamer)1 SmppSessionWrapper (com.cloudhopper.smpp.channel.SmppSessionWrapper)1 SslConfiguration (com.cloudhopper.smpp.ssl.SslConfiguration)1 SslContextFactory (com.cloudhopper.smpp.ssl.SslContextFactory)1 RecoverablePduException (com.cloudhopper.smpp.type.RecoverablePduException)1 SmppChannelConnectException (com.cloudhopper.smpp.type.SmppChannelConnectException)1 SmppChannelException (com.cloudhopper.smpp.type.SmppChannelException)1 SmppTimeoutException (com.cloudhopper.smpp.type.SmppTimeoutException)1 UnrecoverablePduException (com.cloudhopper.smpp.type.UnrecoverablePduException)1 SSLEngine (javax.net.ssl.SSLEngine)1 SslHandler (org.jboss.netty.handler.ssl.SslHandler)1 WriteTimeoutHandler (org.jboss.netty.handler.timeout.WriteTimeoutHandler)1