Index: src/main/java/org/apache/servicemix/smpp/SmppProviderEndpoint.java
===================================================================
--- src/main/java/org/apache/servicemix/smpp/SmppProviderEndpoint.java	(revision 738599)
+++ src/main/java/org/apache/servicemix/smpp/SmppProviderEndpoint.java	(working copy)
@@ -75,6 +75,8 @@
     private int port;
     private String systemId;
     private String password;
+    private int enquireLinkTimer = 50000;
+    private int transactionTimer = 100000;
 
     private SmppMarshalerSupport marshaler;
 
@@ -129,6 +131,14 @@
 		if (this.getMarshaler() == null) {
 			this.setMarshaler(new DefaultSmppMarshaler());
 		}
+		// check the enquire link timer
+		if (this.enquireLinkTimer <= 0) {
+		    throw new IllegalArgumentException("The enquireLinkTimer value must be greater than 0.");
+		}
+		// check the transaction timer
+		if (this.transactionTimer <= 0) {
+		    throw new IllegalArgumentException("The transactionTimer value must be greater than 0.");
+		}
     }
 
     /**
@@ -137,6 +147,10 @@
     private void connect() {
         // create the SMPPSession
         session = new SMPPSession();
+        // define the enquireLinkTimer
+        session.setEnquireLinkTimer(this.enquireLinkTimer);
+        // define the transationTimer
+        session.setTransactionTimer(this.transactionTimer);
         // connect and bind to the SMPP server
         try {
             session.connectAndBind(this.host, this.port, new BindParameter(BindType.BIND_TX, this.systemId,
@@ -310,4 +324,33 @@
     public void setMarshaler(SmppMarshalerSupport marshaler) {
         this.marshaler = marshaler;
     }
+    
+    public int getEnquireLinkTimer() {
+        return enquireLinkTimer;
+    }
+
+    /**
+     * <p>This attribute specifies the enquire link timer defining the resend time interval.<br/></p>
+     * <i>&nbsp;&nbsp;&nbsp;The default value is <b>50000</b> milliseconds</i>
+     * 
+     * @param enquireLinkTimer a <code>int</code> value representing the enquire link timer
+     */
+    public void setEnquireLinkTimer(int enquireLinkTimer) {
+        this.enquireLinkTimer = enquireLinkTimer;
+    }
+    
+    public int getTransactionTimer() {
+        return transactionTimer;
+    }
+    
+    /**
+     * <p>This attribute specifies the transaction timer defining the maximum lifetime of a message.<br/></p>
+     * <i>&nbsp;&nbsp;&nbsp;The default value is <b>100000</b> milliseconds</i>
+     * 
+     * @param transactionTimer a <code>int</code> value representing the transaction timer
+     */
+    public void setTransactionTimer(int transactionTimer) {
+        this.transactionTimer = transactionTimer;
+    }
+    
 }
Index: src/main/java/org/apache/servicemix/smpp/SmppConsumerEndpoint.java
===================================================================
--- src/main/java/org/apache/servicemix/smpp/SmppConsumerEndpoint.java	(revision 738599)
+++ src/main/java/org/apache/servicemix/smpp/SmppConsumerEndpoint.java	(working copy)
@@ -28,7 +28,6 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.servicemix.common.endpoints.ConsumerEndpoint;
-import org.apache.servicemix.smpp.marshaler.DefaultSmppMarshaler;
 import org.apache.servicemix.smpp.marshaler.SmppMarshalerSupport;
 import org.jsmpp.bean.AlertNotification;
 import org.jsmpp.bean.BindType;
@@ -65,6 +64,8 @@
     private int port;
     private String systemId;
     private String password;
+    private int enquireLinkTimer = 50000;
+    private int transactionTimer = 100000;
 
     private SmppMarshalerSupport marshaler;
 
@@ -111,6 +112,14 @@
         if (this.systemId == null || this.systemId.trim().length() <= 0) {
             throw new IllegalArgumentException("The SMPP system ID is mandatory.");
         }
+        // check the enquireLinkTimer
+        if (this.enquireLinkTimer <= 0) {
+            throw new IllegalArgumentException("The enquireLinkTimer value must be greater than 0.");
+        }
+        // check the transactionTimer
+        if (this.transactionTimer <= 0) {
+            throw new IllegalArgumentException("The transactionTimer value must be greater than 0.");
+        }
     }
 
     /*
@@ -137,6 +146,10 @@
     private void connect() {
         // create the SMPP session
         session = new SMPPSession();
+        // define the enquireLinkTimer
+        session.setEnquireLinkTimer(this.enquireLinkTimer);
+        // define the transactionTimer
+        session.setTransactionTimer(this.transactionTimer);
         // define a message receiver listener on the SMPP connection
         session.setMessageReceiverListener(new MessageReceiverListener() {
             /*
@@ -269,4 +282,33 @@
     public void setMarshaler(SmppMarshalerSupport marshaler) {
         this.marshaler = marshaler;
     }
+    
+    public int getEnquireLinkTimer() {
+        return enquireLinkTimer;
+    }
+    
+    /**
+     * <p>This attribute specifies the enquire link timer defining the SMSC time interval.<br/></p>
+     * <i>&nbsp;&nbsp;&nbsp;The default value is <b>50000</b></i>
+     * 
+     * @param enquireLinkTimer a <code>int</code> value representing the enquire link timer
+     */
+    public void setEnquireLinkTimer(int enquireLinkTimer) {
+        this.enquireLinkTimer = enquireLinkTimer;
+    }
+    
+    public int getTransactionTimer() {
+        return transactionTimer;
+    }
+    
+    /**
+     * <p>This attribute specifies the transaction timer defining the SMSC timeout.<br/></p>
+     * <i>&nbsp;&nbsp;&nbsp;The default value is <b>100000</b></i>
+     * 
+     * @param transactionTimer a <code>int</code> value representing the transaction timer (timeout)
+     */
+    public void setTransactionTimer(int transactionTimer) {
+        this.transactionTimer = transactionTimer;
+    }
+    
 }
