You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2023/11/09 11:30:37 UTC

(camel) branch main updated: CAMEL-20061: SMPP interface version can now be configured (#11930)

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 9d1cd99d838 CAMEL-20061: SMPP interface version can now be configured (#11930)
9d1cd99d838 is described below

commit 9d1cd99d838f635a505b8d217badf285d3c75350
Author: brunoriemenschneider <62...@users.noreply.github.com>
AuthorDate: Thu Nov 9 12:30:29 2023 +0100

    CAMEL-20061: SMPP interface version can now be configured (#11930)
    
    * CAMEL-20061: SMPP interface version can now be configured
    
    Interface Version functionality as supported by jSMPP is adopted with @UriParam configuration parameter. The default value (interface version 3.4) remains unchanged.
    
    The configuration value is parsed as String and converted to hex byte (which is used at protocol level) at a later stage when passed to jSMPP, as Camel does not support hexadecimal byte parsing from config values at this point. (I think the issue is in the Camel support component: the PropertyConfigurerSupport.class does not implement this case)
    
    * Incorporated feedback from PR review.
    - Deleted redundant .md
    - Added short doc comment about the functionality
    - altered syntax in doc-relevant comment in configuration file
    
    * Incorporated further feedback from PR review:
    - replaced the SMPP protocol-level version codes 0x00, 0x33, 0x34, and 0x50 in the configuration String by "legacy", "3.3", "3.4", and "5.0", respectively
---
 .../org/apache/camel/catalog/components/smpp.json  | 66 +++++++++++-----------
 .../org/apache/camel/catalog/components/smpps.json | 66 +++++++++++-----------
 .../component/smpp/SmppComponentConfigurer.java    |  6 ++
 .../component/smpp/SmppEndpointConfigurer.java     |  6 ++
 .../component/smpp/SmppEndpointUriFactory.java     |  3 +-
 .../org/apache/camel/component/smpp/smpp.json      | 66 +++++++++++-----------
 .../org/apache/camel/component/smpp/smpps.json     | 66 +++++++++++-----------
 .../camel-smpp/src/main/docs/smpp-component.adoc   |  2 +
 .../camel/component/smpp/SmppConfiguration.java    | 32 +++++++++--
 .../apache/camel/component/smpp/SmppConsumer.java  |  3 +-
 .../apache/camel/component/smpp/SmppProducer.java  |  3 +-
 .../component/smpp/SmppConfigurationTest.java      |  7 ++-
 .../camel/component/smpp/SmppProducerTest.java     |  5 +-
 13 files changed, 193 insertions(+), 138 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/smpp.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/smpp.json
index 4f3ec3613ff..02402e69561 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/smpp.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/smpp.json
@@ -49,22 +49,23 @@
     "autowiredEnabled": { "index": 23, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching  [...]
     "configuration": { "index": 24, "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.smpp.SmppConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use the shared SmppConfiguration as configuration." },
     "enquireLinkTimer": { "index": 25, "kind": "property", "displayName": "Enquire Link Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "60000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the interval in milliseconds between the confidence checks. Th [...]
-    "pduProcessorDegree": { "index": 26, "kind": "property", "displayName": "Pdu Processor Degree", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the number of threads which can read PDU and process them in para [...]
-    "pduProcessorQueueCapacity": { "index": 27, "kind": "property", "displayName": "Pdu Processor Queue Capacity", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the capacity of the working queue for PDU proces [...]
-    "sessionStateListener": { "index": 28, "kind": "property", "displayName": "Session State Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.jsmpp.session.SessionStateListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "You can refer to a org.jsmpp.session.SessionStateListener in the Re [...]
-    "singleDLR": { "index": 29, "kind": "property", "displayName": "Single DLR", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "When true, the SMSC delivery receipt would be requested only for the last segment of a multi-segm [...]
-    "transactionTimer": { "index": 30, "kind": "property", "displayName": "Transaction Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the maximum period of inactivity allowed after a transaction, a [...]
-    "alphabet": { "index": 31, "kind": "property", "displayName": "Alphabet", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "4", "8" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines encoding of data according the SMPP 3.4 specification, section 5.2.19. 0: SMSC Default Alphabet 4 [...]
-    "dataCoding": { "index": 32, "kind": "property", "displayName": "Data Coding", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the data coding according the SMPP 3.4 specification, section 5.2.19. Example data encodings are: 0: SMSC Default Alpha [...]
-    "encoding": { "index": 33, "kind": "property", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ISO-8859-1", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the encoding scheme of the short message user data. Only for SubmitSm, ReplaceSm an [...]
-    "httpProxyHost": { "index": 34, "kind": "property", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the hostname or ip address of your HTT [...]
-    "httpProxyPassword": { "index": 35, "kind": "property", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the password required for you [...]
-    "httpProxyPort": { "index": 36, "kind": "property", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3128", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the port of  [...]
-    "httpProxyUsername": { "index": 37, "kind": "property", "displayName": "Http Proxy Username", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the username required for you [...]
-    "proxyHeaders": { "index": 38, "kind": "property", "displayName": "Proxy Headers", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "These headers will be passed to the proxy server while establishing the connect [...]
-    "password": { "index": 39, "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The password for connecting to SMSC server." },
-    "systemId": { "index": 40, "kind": "property", "displayName": "System Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "defaultValue": "smppclient", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The system id (username) for connecting to SMSC server." },
-    "usingSSL": { "index": 41, "kind": "property", "displayName": "Using SSL", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Whether using SSL with the smpps protocol" }
+    "interfaceVersion": { "index": 26, "kind": "property", "displayName": "Interface Version", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "legacy", "3.3", "3.4", "5.0" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3.4", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the interface version to [...]
+    "pduProcessorDegree": { "index": 27, "kind": "property", "displayName": "Pdu Processor Degree", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the number of threads which can read PDU and process them in para [...]
+    "pduProcessorQueueCapacity": { "index": 28, "kind": "property", "displayName": "Pdu Processor Queue Capacity", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the capacity of the working queue for PDU proces [...]
+    "sessionStateListener": { "index": 29, "kind": "property", "displayName": "Session State Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.jsmpp.session.SessionStateListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "You can refer to a org.jsmpp.session.SessionStateListener in the Re [...]
+    "singleDLR": { "index": 30, "kind": "property", "displayName": "Single DLR", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "When true, the SMSC delivery receipt would be requested only for the last segment of a multi-segm [...]
+    "transactionTimer": { "index": 31, "kind": "property", "displayName": "Transaction Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the maximum period of inactivity allowed after a transaction, a [...]
+    "alphabet": { "index": 32, "kind": "property", "displayName": "Alphabet", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "4", "8" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines encoding of data according the SMPP 3.4 specification, section 5.2.19. 0: SMSC Default Alphabet 4 [...]
+    "dataCoding": { "index": 33, "kind": "property", "displayName": "Data Coding", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the data coding according the SMPP 3.4 specification, section 5.2.19. Example data encodings are: 0: SMSC Default Alpha [...]
+    "encoding": { "index": 34, "kind": "property", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ISO-8859-1", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the encoding scheme of the short message user data. Only for SubmitSm, ReplaceSm an [...]
+    "httpProxyHost": { "index": 35, "kind": "property", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the hostname or ip address of your HTT [...]
+    "httpProxyPassword": { "index": 36, "kind": "property", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the password required for you [...]
+    "httpProxyPort": { "index": 37, "kind": "property", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3128", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the port of  [...]
+    "httpProxyUsername": { "index": 38, "kind": "property", "displayName": "Http Proxy Username", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the username required for you [...]
+    "proxyHeaders": { "index": 39, "kind": "property", "displayName": "Proxy Headers", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "These headers will be passed to the proxy server while establishing the connect [...]
+    "password": { "index": 40, "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The password for connecting to SMSC server." },
+    "systemId": { "index": 41, "kind": "property", "displayName": "System Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "defaultValue": "smppclient", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The system id (username) for connecting to SMSC server." },
+    "usingSSL": { "index": 42, "kind": "property", "displayName": "Using SSL", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Whether using SSL with the smpps protocol" }
   },
   "headers": {
     "CamelSmppAlphabet": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Byte", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "For SubmitSm, SubmitMulti and ReplaceSm The data coding according to the SMPP 3.4 specification, section 5.2.19. Use the URI option alphabet settings above.", "constantName": "org.apache.camel.component.smpp.SmppConstants#ALPHABET" },
@@ -139,21 +140,22 @@
     "typeOfNumber": { "index": 25, "kind": "parameter", "displayName": "Type Of Number", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "1", "2", "3", "4", "5", "6" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the type of number (TON) to be used in the SME. The followin [...]
     "lazyStartProducer": { "index": 26, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produ [...]
     "enquireLinkTimer": { "index": 27, "kind": "parameter", "displayName": "Enquire Link Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "60000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the interval in milliseconds between the confidence checks. T [...]
-    "pduProcessorDegree": { "index": 28, "kind": "parameter", "displayName": "Pdu Processor Degree", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the number of threads which can read PDU and process them in par [...]
-    "pduProcessorQueueCapacity": { "index": 29, "kind": "parameter", "displayName": "Pdu Processor Queue Capacity", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the capacity of the working queue for PDU proce [...]
-    "sessionStateListener": { "index": 30, "kind": "parameter", "displayName": "Session State Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.jsmpp.session.SessionStateListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "You can refer to a org.jsmpp.session.SessionStateListener in the R [...]
-    "singleDLR": { "index": 31, "kind": "parameter", "displayName": "Single DLR", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "When true, the SMSC delivery receipt would be requested only for the last segment of a multi-seg [...]
-    "transactionTimer": { "index": 32, "kind": "parameter", "displayName": "Transaction Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the maximum period of inactivity allowed after a transaction,  [...]
-    "alphabet": { "index": 33, "kind": "parameter", "displayName": "Alphabet", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "4", "8" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines encoding of data according the SMPP 3.4 specification, section 5.2.19. 0: SMSC Default Alphabet  [...]
-    "dataCoding": { "index": 34, "kind": "parameter", "displayName": "Data Coding", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the data coding according the SMPP 3.4 specification, section 5.2.19. Example data encodings are: 0: SMSC Default Alph [...]
-    "encoding": { "index": 35, "kind": "parameter", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ISO-8859-1", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the encoding scheme of the short message user data. Only for SubmitSm, ReplaceSm a [...]
-    "httpProxyHost": { "index": 36, "kind": "parameter", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the hostname or ip address of your HT [...]
-    "httpProxyPassword": { "index": 37, "kind": "parameter", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the password required for yo [...]
-    "httpProxyPort": { "index": 38, "kind": "parameter", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3128", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the port of [...]
-    "httpProxyUsername": { "index": 39, "kind": "parameter", "displayName": "Http Proxy Username", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the username required for yo [...]
-    "proxyHeaders": { "index": 40, "kind": "parameter", "displayName": "Proxy Headers", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "These headers will be passed to the proxy server while establishing the connec [...]
-    "password": { "index": 41, "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The password for connecting to SMSC server." },
-    "systemId": { "index": 42, "kind": "parameter", "displayName": "System Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "defaultValue": "smppclient", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The system id (username) for connecting to SMSC server." },
-    "usingSSL": { "index": 43, "kind": "parameter", "displayName": "Using SSL", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Whether using SSL with the smpps protocol" }
+    "interfaceVersion": { "index": 28, "kind": "parameter", "displayName": "Interface Version", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "legacy", "3.3", "3.4", "5.0" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3.4", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the interface version t [...]
+    "pduProcessorDegree": { "index": 29, "kind": "parameter", "displayName": "Pdu Processor Degree", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the number of threads which can read PDU and process them in par [...]
+    "pduProcessorQueueCapacity": { "index": 30, "kind": "parameter", "displayName": "Pdu Processor Queue Capacity", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the capacity of the working queue for PDU proce [...]
+    "sessionStateListener": { "index": 31, "kind": "parameter", "displayName": "Session State Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.jsmpp.session.SessionStateListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "You can refer to a org.jsmpp.session.SessionStateListener in the R [...]
+    "singleDLR": { "index": 32, "kind": "parameter", "displayName": "Single DLR", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "When true, the SMSC delivery receipt would be requested only for the last segment of a multi-seg [...]
+    "transactionTimer": { "index": 33, "kind": "parameter", "displayName": "Transaction Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the maximum period of inactivity allowed after a transaction,  [...]
+    "alphabet": { "index": 34, "kind": "parameter", "displayName": "Alphabet", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "4", "8" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines encoding of data according the SMPP 3.4 specification, section 5.2.19. 0: SMSC Default Alphabet  [...]
+    "dataCoding": { "index": 35, "kind": "parameter", "displayName": "Data Coding", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the data coding according the SMPP 3.4 specification, section 5.2.19. Example data encodings are: 0: SMSC Default Alph [...]
+    "encoding": { "index": 36, "kind": "parameter", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ISO-8859-1", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the encoding scheme of the short message user data. Only for SubmitSm, ReplaceSm a [...]
+    "httpProxyHost": { "index": 37, "kind": "parameter", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the hostname or ip address of your HT [...]
+    "httpProxyPassword": { "index": 38, "kind": "parameter", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the password required for yo [...]
+    "httpProxyPort": { "index": 39, "kind": "parameter", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3128", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the port of [...]
+    "httpProxyUsername": { "index": 40, "kind": "parameter", "displayName": "Http Proxy Username", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the username required for yo [...]
+    "proxyHeaders": { "index": 41, "kind": "parameter", "displayName": "Proxy Headers", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "These headers will be passed to the proxy server while establishing the connec [...]
+    "password": { "index": 42, "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The password for connecting to SMSC server." },
+    "systemId": { "index": 43, "kind": "parameter", "displayName": "System Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "defaultValue": "smppclient", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The system id (username) for connecting to SMSC server." },
+    "usingSSL": { "index": 44, "kind": "parameter", "displayName": "Using SSL", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Whether using SSL with the smpps protocol" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/smpps.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/smpps.json
index 3d55f9a9379..3fff477cdf0 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/smpps.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/smpps.json
@@ -49,22 +49,23 @@
     "autowiredEnabled": { "index": 23, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching  [...]
     "configuration": { "index": 24, "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.smpp.SmppConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use the shared SmppConfiguration as configuration." },
     "enquireLinkTimer": { "index": 25, "kind": "property", "displayName": "Enquire Link Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "60000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the interval in milliseconds between the confidence checks. Th [...]
-    "pduProcessorDegree": { "index": 26, "kind": "property", "displayName": "Pdu Processor Degree", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the number of threads which can read PDU and process them in para [...]
-    "pduProcessorQueueCapacity": { "index": 27, "kind": "property", "displayName": "Pdu Processor Queue Capacity", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the capacity of the working queue for PDU proces [...]
-    "sessionStateListener": { "index": 28, "kind": "property", "displayName": "Session State Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.jsmpp.session.SessionStateListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "You can refer to a org.jsmpp.session.SessionStateListener in the Re [...]
-    "singleDLR": { "index": 29, "kind": "property", "displayName": "Single DLR", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "When true, the SMSC delivery receipt would be requested only for the last segment of a multi-segm [...]
-    "transactionTimer": { "index": 30, "kind": "property", "displayName": "Transaction Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the maximum period of inactivity allowed after a transaction, a [...]
-    "alphabet": { "index": 31, "kind": "property", "displayName": "Alphabet", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "4", "8" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines encoding of data according the SMPP 3.4 specification, section 5.2.19. 0: SMSC Default Alphabet 4 [...]
-    "dataCoding": { "index": 32, "kind": "property", "displayName": "Data Coding", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the data coding according the SMPP 3.4 specification, section 5.2.19. Example data encodings are: 0: SMSC Default Alpha [...]
-    "encoding": { "index": 33, "kind": "property", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ISO-8859-1", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the encoding scheme of the short message user data. Only for SubmitSm, ReplaceSm an [...]
-    "httpProxyHost": { "index": 34, "kind": "property", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the hostname or ip address of your HTT [...]
-    "httpProxyPassword": { "index": 35, "kind": "property", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the password required for you [...]
-    "httpProxyPort": { "index": 36, "kind": "property", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3128", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the port of  [...]
-    "httpProxyUsername": { "index": 37, "kind": "property", "displayName": "Http Proxy Username", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the username required for you [...]
-    "proxyHeaders": { "index": 38, "kind": "property", "displayName": "Proxy Headers", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "These headers will be passed to the proxy server while establishing the connect [...]
-    "password": { "index": 39, "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The password for connecting to SMSC server." },
-    "systemId": { "index": 40, "kind": "property", "displayName": "System Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "defaultValue": "smppclient", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The system id (username) for connecting to SMSC server." },
-    "usingSSL": { "index": 41, "kind": "property", "displayName": "Using SSL", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Whether using SSL with the smpps protocol" }
+    "interfaceVersion": { "index": 26, "kind": "property", "displayName": "Interface Version", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "legacy", "3.3", "3.4", "5.0" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3.4", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the interface version to [...]
+    "pduProcessorDegree": { "index": 27, "kind": "property", "displayName": "Pdu Processor Degree", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the number of threads which can read PDU and process them in para [...]
+    "pduProcessorQueueCapacity": { "index": 28, "kind": "property", "displayName": "Pdu Processor Queue Capacity", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the capacity of the working queue for PDU proces [...]
+    "sessionStateListener": { "index": 29, "kind": "property", "displayName": "Session State Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.jsmpp.session.SessionStateListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "You can refer to a org.jsmpp.session.SessionStateListener in the Re [...]
+    "singleDLR": { "index": 30, "kind": "property", "displayName": "Single DLR", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "When true, the SMSC delivery receipt would be requested only for the last segment of a multi-segm [...]
+    "transactionTimer": { "index": 31, "kind": "property", "displayName": "Transaction Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the maximum period of inactivity allowed after a transaction, a [...]
+    "alphabet": { "index": 32, "kind": "property", "displayName": "Alphabet", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "4", "8" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines encoding of data according the SMPP 3.4 specification, section 5.2.19. 0: SMSC Default Alphabet 4 [...]
+    "dataCoding": { "index": 33, "kind": "property", "displayName": "Data Coding", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the data coding according the SMPP 3.4 specification, section 5.2.19. Example data encodings are: 0: SMSC Default Alpha [...]
+    "encoding": { "index": 34, "kind": "property", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ISO-8859-1", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the encoding scheme of the short message user data. Only for SubmitSm, ReplaceSm an [...]
+    "httpProxyHost": { "index": 35, "kind": "property", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the hostname or ip address of your HTT [...]
+    "httpProxyPassword": { "index": 36, "kind": "property", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the password required for you [...]
+    "httpProxyPort": { "index": 37, "kind": "property", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3128", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the port of  [...]
+    "httpProxyUsername": { "index": 38, "kind": "property", "displayName": "Http Proxy Username", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the username required for you [...]
+    "proxyHeaders": { "index": 39, "kind": "property", "displayName": "Proxy Headers", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "These headers will be passed to the proxy server while establishing the connect [...]
+    "password": { "index": 40, "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The password for connecting to SMSC server." },
+    "systemId": { "index": 41, "kind": "property", "displayName": "System Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "defaultValue": "smppclient", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The system id (username) for connecting to SMSC server." },
+    "usingSSL": { "index": 42, "kind": "property", "displayName": "Using SSL", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Whether using SSL with the smpps protocol" }
   },
   "headers": {
     "CamelSmppAlphabet": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Byte", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "For SubmitSm, SubmitMulti and ReplaceSm The data coding according to the SMPP 3.4 specification, section 5.2.19. Use the URI option alphabet settings above.", "constantName": "org.apache.camel.component.smpp.SmppConstants#ALPHABET" },
@@ -139,21 +140,22 @@
     "typeOfNumber": { "index": 25, "kind": "parameter", "displayName": "Type Of Number", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "1", "2", "3", "4", "5", "6" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the type of number (TON) to be used in the SME. The followin [...]
     "lazyStartProducer": { "index": 26, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produ [...]
     "enquireLinkTimer": { "index": 27, "kind": "parameter", "displayName": "Enquire Link Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "60000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the interval in milliseconds between the confidence checks. T [...]
-    "pduProcessorDegree": { "index": 28, "kind": "parameter", "displayName": "Pdu Processor Degree", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the number of threads which can read PDU and process them in par [...]
-    "pduProcessorQueueCapacity": { "index": 29, "kind": "parameter", "displayName": "Pdu Processor Queue Capacity", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the capacity of the working queue for PDU proce [...]
-    "sessionStateListener": { "index": 30, "kind": "parameter", "displayName": "Session State Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.jsmpp.session.SessionStateListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "You can refer to a org.jsmpp.session.SessionStateListener in the R [...]
-    "singleDLR": { "index": 31, "kind": "parameter", "displayName": "Single DLR", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "When true, the SMSC delivery receipt would be requested only for the last segment of a multi-seg [...]
-    "transactionTimer": { "index": 32, "kind": "parameter", "displayName": "Transaction Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the maximum period of inactivity allowed after a transaction,  [...]
-    "alphabet": { "index": 33, "kind": "parameter", "displayName": "Alphabet", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "4", "8" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines encoding of data according the SMPP 3.4 specification, section 5.2.19. 0: SMSC Default Alphabet  [...]
-    "dataCoding": { "index": 34, "kind": "parameter", "displayName": "Data Coding", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the data coding according the SMPP 3.4 specification, section 5.2.19. Example data encodings are: 0: SMSC Default Alph [...]
-    "encoding": { "index": 35, "kind": "parameter", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ISO-8859-1", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the encoding scheme of the short message user data. Only for SubmitSm, ReplaceSm a [...]
-    "httpProxyHost": { "index": 36, "kind": "parameter", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the hostname or ip address of your HT [...]
-    "httpProxyPassword": { "index": 37, "kind": "parameter", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the password required for yo [...]
-    "httpProxyPort": { "index": 38, "kind": "parameter", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3128", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the port of [...]
-    "httpProxyUsername": { "index": 39, "kind": "parameter", "displayName": "Http Proxy Username", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the username required for yo [...]
-    "proxyHeaders": { "index": 40, "kind": "parameter", "displayName": "Proxy Headers", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "These headers will be passed to the proxy server while establishing the connec [...]
-    "password": { "index": 41, "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The password for connecting to SMSC server." },
-    "systemId": { "index": 42, "kind": "parameter", "displayName": "System Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "defaultValue": "smppclient", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The system id (username) for connecting to SMSC server." },
-    "usingSSL": { "index": 43, "kind": "parameter", "displayName": "Using SSL", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Whether using SSL with the smpps protocol" }
+    "interfaceVersion": { "index": 28, "kind": "parameter", "displayName": "Interface Version", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "legacy", "3.3", "3.4", "5.0" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3.4", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the interface version t [...]
+    "pduProcessorDegree": { "index": 29, "kind": "parameter", "displayName": "Pdu Processor Degree", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the number of threads which can read PDU and process them in par [...]
+    "pduProcessorQueueCapacity": { "index": 30, "kind": "parameter", "displayName": "Pdu Processor Queue Capacity", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the capacity of the working queue for PDU proce [...]
+    "sessionStateListener": { "index": 31, "kind": "parameter", "displayName": "Session State Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.jsmpp.session.SessionStateListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "You can refer to a org.jsmpp.session.SessionStateListener in the R [...]
+    "singleDLR": { "index": 32, "kind": "parameter", "displayName": "Single DLR", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "When true, the SMSC delivery receipt would be requested only for the last segment of a multi-seg [...]
+    "transactionTimer": { "index": 33, "kind": "parameter", "displayName": "Transaction Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the maximum period of inactivity allowed after a transaction,  [...]
+    "alphabet": { "index": 34, "kind": "parameter", "displayName": "Alphabet", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "4", "8" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines encoding of data according the SMPP 3.4 specification, section 5.2.19. 0: SMSC Default Alphabet  [...]
+    "dataCoding": { "index": 35, "kind": "parameter", "displayName": "Data Coding", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the data coding according the SMPP 3.4 specification, section 5.2.19. Example data encodings are: 0: SMSC Default Alph [...]
+    "encoding": { "index": 36, "kind": "parameter", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ISO-8859-1", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the encoding scheme of the short message user data. Only for SubmitSm, ReplaceSm a [...]
+    "httpProxyHost": { "index": 37, "kind": "parameter", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the hostname or ip address of your HT [...]
+    "httpProxyPassword": { "index": 38, "kind": "parameter", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the password required for yo [...]
+    "httpProxyPort": { "index": 39, "kind": "parameter", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3128", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the port of [...]
+    "httpProxyUsername": { "index": 40, "kind": "parameter", "displayName": "Http Proxy Username", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the username required for yo [...]
+    "proxyHeaders": { "index": 41, "kind": "parameter", "displayName": "Proxy Headers", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "These headers will be passed to the proxy server while establishing the connec [...]
+    "password": { "index": 42, "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The password for connecting to SMSC server." },
+    "systemId": { "index": 43, "kind": "parameter", "displayName": "System Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "defaultValue": "smppclient", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The system id (username) for connecting to SMSC server." },
+    "usingSSL": { "index": 44, "kind": "parameter", "displayName": "Using SSL", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Whether using SSL with the smpps protocol" }
   }
 }
diff --git a/components/camel-smpp/src/generated/java/org/apache/camel/component/smpp/SmppComponentConfigurer.java b/components/camel-smpp/src/generated/java/org/apache/camel/component/smpp/SmppComponentConfigurer.java
index 3438a118679..323b35f740a 100644
--- a/components/camel-smpp/src/generated/java/org/apache/camel/component/smpp/SmppComponentConfigurer.java
+++ b/components/camel-smpp/src/generated/java/org/apache/camel/component/smpp/SmppComponentConfigurer.java
@@ -57,6 +57,8 @@ public class SmppComponentConfigurer extends PropertyConfigurerSupport implement
         case "httpProxyUsername": getOrCreateConfiguration(target).setHttpProxyUsername(property(camelContext, java.lang.String.class, value)); return true;
         case "initialreconnectdelay":
         case "initialReconnectDelay": getOrCreateConfiguration(target).setInitialReconnectDelay(property(camelContext, long.class, value)); return true;
+        case "interfaceversion":
+        case "interfaceVersion": getOrCreateConfiguration(target).setInterfaceVersion(property(camelContext, java.lang.String.class, value)); return true;
         case "lazysessioncreation":
         case "lazySessionCreation": getOrCreateConfiguration(target).setLazySessionCreation(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
@@ -144,6 +146,8 @@ public class SmppComponentConfigurer extends PropertyConfigurerSupport implement
         case "httpProxyUsername": return java.lang.String.class;
         case "initialreconnectdelay":
         case "initialReconnectDelay": return long.class;
+        case "interfaceversion":
+        case "interfaceVersion": return java.lang.String.class;
         case "lazysessioncreation":
         case "lazySessionCreation": return boolean.class;
         case "lazystartproducer":
@@ -232,6 +236,8 @@ public class SmppComponentConfigurer extends PropertyConfigurerSupport implement
         case "httpProxyUsername": return getOrCreateConfiguration(target).getHttpProxyUsername();
         case "initialreconnectdelay":
         case "initialReconnectDelay": return getOrCreateConfiguration(target).getInitialReconnectDelay();
+        case "interfaceversion":
+        case "interfaceVersion": return getOrCreateConfiguration(target).getInterfaceVersion();
         case "lazysessioncreation":
         case "lazySessionCreation": return getOrCreateConfiguration(target).isLazySessionCreation();
         case "lazystartproducer":
diff --git a/components/camel-smpp/src/generated/java/org/apache/camel/component/smpp/SmppEndpointConfigurer.java b/components/camel-smpp/src/generated/java/org/apache/camel/component/smpp/SmppEndpointConfigurer.java
index 0697d9808fe..e93b915ca3c 100644
--- a/components/camel-smpp/src/generated/java/org/apache/camel/component/smpp/SmppEndpointConfigurer.java
+++ b/components/camel-smpp/src/generated/java/org/apache/camel/component/smpp/SmppEndpointConfigurer.java
@@ -51,6 +51,8 @@ public class SmppEndpointConfigurer extends PropertyConfigurerSupport implements
         case "httpProxyUsername": target.getConfiguration().setHttpProxyUsername(property(camelContext, java.lang.String.class, value)); return true;
         case "initialreconnectdelay":
         case "initialReconnectDelay": target.getConfiguration().setInitialReconnectDelay(property(camelContext, long.class, value)); return true;
+        case "interfaceversion":
+        case "interfaceVersion": target.getConfiguration().setInterfaceVersion(property(camelContext, java.lang.String.class, value)); return true;
         case "lazysessioncreation":
         case "lazySessionCreation": target.getConfiguration().setLazySessionCreation(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
@@ -139,6 +141,8 @@ public class SmppEndpointConfigurer extends PropertyConfigurerSupport implements
         case "httpProxyUsername": return java.lang.String.class;
         case "initialreconnectdelay":
         case "initialReconnectDelay": return long.class;
+        case "interfaceversion":
+        case "interfaceVersion": return java.lang.String.class;
         case "lazysessioncreation":
         case "lazySessionCreation": return boolean.class;
         case "lazystartproducer":
@@ -228,6 +232,8 @@ public class SmppEndpointConfigurer extends PropertyConfigurerSupport implements
         case "httpProxyUsername": return target.getConfiguration().getHttpProxyUsername();
         case "initialreconnectdelay":
         case "initialReconnectDelay": return target.getConfiguration().getInitialReconnectDelay();
+        case "interfaceversion":
+        case "interfaceVersion": return target.getConfiguration().getInterfaceVersion();
         case "lazysessioncreation":
         case "lazySessionCreation": return target.getConfiguration().isLazySessionCreation();
         case "lazystartproducer":
diff --git a/components/camel-smpp/src/generated/java/org/apache/camel/component/smpp/SmppEndpointUriFactory.java b/components/camel-smpp/src/generated/java/org/apache/camel/component/smpp/SmppEndpointUriFactory.java
index 12e1df62d70..e27cf4fa179 100644
--- a/components/camel-smpp/src/generated/java/org/apache/camel/component/smpp/SmppEndpointUriFactory.java
+++ b/components/camel-smpp/src/generated/java/org/apache/camel/component/smpp/SmppEndpointUriFactory.java
@@ -22,7 +22,7 @@ public class SmppEndpointUriFactory extends org.apache.camel.support.component.E
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Set<String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(44);
+        Set<String> props = new HashSet<>(45);
         props.add("addressRange");
         props.add("alphabet");
         props.add("bridgeErrorHandler");
@@ -40,6 +40,7 @@ public class SmppEndpointUriFactory extends org.apache.camel.support.component.E
         props.add("httpProxyPort");
         props.add("httpProxyUsername");
         props.add("initialReconnectDelay");
+        props.add("interfaceVersion");
         props.add("lazySessionCreation");
         props.add("lazyStartProducer");
         props.add("maxReconnect");
diff --git a/components/camel-smpp/src/generated/resources/org/apache/camel/component/smpp/smpp.json b/components/camel-smpp/src/generated/resources/org/apache/camel/component/smpp/smpp.json
index 4f3ec3613ff..02402e69561 100644
--- a/components/camel-smpp/src/generated/resources/org/apache/camel/component/smpp/smpp.json
+++ b/components/camel-smpp/src/generated/resources/org/apache/camel/component/smpp/smpp.json
@@ -49,22 +49,23 @@
     "autowiredEnabled": { "index": 23, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching  [...]
     "configuration": { "index": 24, "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.smpp.SmppConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use the shared SmppConfiguration as configuration." },
     "enquireLinkTimer": { "index": 25, "kind": "property", "displayName": "Enquire Link Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "60000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the interval in milliseconds between the confidence checks. Th [...]
-    "pduProcessorDegree": { "index": 26, "kind": "property", "displayName": "Pdu Processor Degree", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the number of threads which can read PDU and process them in para [...]
-    "pduProcessorQueueCapacity": { "index": 27, "kind": "property", "displayName": "Pdu Processor Queue Capacity", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the capacity of the working queue for PDU proces [...]
-    "sessionStateListener": { "index": 28, "kind": "property", "displayName": "Session State Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.jsmpp.session.SessionStateListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "You can refer to a org.jsmpp.session.SessionStateListener in the Re [...]
-    "singleDLR": { "index": 29, "kind": "property", "displayName": "Single DLR", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "When true, the SMSC delivery receipt would be requested only for the last segment of a multi-segm [...]
-    "transactionTimer": { "index": 30, "kind": "property", "displayName": "Transaction Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the maximum period of inactivity allowed after a transaction, a [...]
-    "alphabet": { "index": 31, "kind": "property", "displayName": "Alphabet", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "4", "8" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines encoding of data according the SMPP 3.4 specification, section 5.2.19. 0: SMSC Default Alphabet 4 [...]
-    "dataCoding": { "index": 32, "kind": "property", "displayName": "Data Coding", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the data coding according the SMPP 3.4 specification, section 5.2.19. Example data encodings are: 0: SMSC Default Alpha [...]
-    "encoding": { "index": 33, "kind": "property", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ISO-8859-1", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the encoding scheme of the short message user data. Only for SubmitSm, ReplaceSm an [...]
-    "httpProxyHost": { "index": 34, "kind": "property", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the hostname or ip address of your HTT [...]
-    "httpProxyPassword": { "index": 35, "kind": "property", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the password required for you [...]
-    "httpProxyPort": { "index": 36, "kind": "property", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3128", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the port of  [...]
-    "httpProxyUsername": { "index": 37, "kind": "property", "displayName": "Http Proxy Username", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the username required for you [...]
-    "proxyHeaders": { "index": 38, "kind": "property", "displayName": "Proxy Headers", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "These headers will be passed to the proxy server while establishing the connect [...]
-    "password": { "index": 39, "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The password for connecting to SMSC server." },
-    "systemId": { "index": 40, "kind": "property", "displayName": "System Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "defaultValue": "smppclient", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The system id (username) for connecting to SMSC server." },
-    "usingSSL": { "index": 41, "kind": "property", "displayName": "Using SSL", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Whether using SSL with the smpps protocol" }
+    "interfaceVersion": { "index": 26, "kind": "property", "displayName": "Interface Version", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "legacy", "3.3", "3.4", "5.0" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3.4", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the interface version to [...]
+    "pduProcessorDegree": { "index": 27, "kind": "property", "displayName": "Pdu Processor Degree", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the number of threads which can read PDU and process them in para [...]
+    "pduProcessorQueueCapacity": { "index": 28, "kind": "property", "displayName": "Pdu Processor Queue Capacity", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the capacity of the working queue for PDU proces [...]
+    "sessionStateListener": { "index": 29, "kind": "property", "displayName": "Session State Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.jsmpp.session.SessionStateListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "You can refer to a org.jsmpp.session.SessionStateListener in the Re [...]
+    "singleDLR": { "index": 30, "kind": "property", "displayName": "Single DLR", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "When true, the SMSC delivery receipt would be requested only for the last segment of a multi-segm [...]
+    "transactionTimer": { "index": 31, "kind": "property", "displayName": "Transaction Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the maximum period of inactivity allowed after a transaction, a [...]
+    "alphabet": { "index": 32, "kind": "property", "displayName": "Alphabet", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "4", "8" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines encoding of data according the SMPP 3.4 specification, section 5.2.19. 0: SMSC Default Alphabet 4 [...]
+    "dataCoding": { "index": 33, "kind": "property", "displayName": "Data Coding", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the data coding according the SMPP 3.4 specification, section 5.2.19. Example data encodings are: 0: SMSC Default Alpha [...]
+    "encoding": { "index": 34, "kind": "property", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ISO-8859-1", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the encoding scheme of the short message user data. Only for SubmitSm, ReplaceSm an [...]
+    "httpProxyHost": { "index": 35, "kind": "property", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the hostname or ip address of your HTT [...]
+    "httpProxyPassword": { "index": 36, "kind": "property", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the password required for you [...]
+    "httpProxyPort": { "index": 37, "kind": "property", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3128", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the port of  [...]
+    "httpProxyUsername": { "index": 38, "kind": "property", "displayName": "Http Proxy Username", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the username required for you [...]
+    "proxyHeaders": { "index": 39, "kind": "property", "displayName": "Proxy Headers", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "These headers will be passed to the proxy server while establishing the connect [...]
+    "password": { "index": 40, "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The password for connecting to SMSC server." },
+    "systemId": { "index": 41, "kind": "property", "displayName": "System Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "defaultValue": "smppclient", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The system id (username) for connecting to SMSC server." },
+    "usingSSL": { "index": 42, "kind": "property", "displayName": "Using SSL", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Whether using SSL with the smpps protocol" }
   },
   "headers": {
     "CamelSmppAlphabet": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Byte", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "For SubmitSm, SubmitMulti and ReplaceSm The data coding according to the SMPP 3.4 specification, section 5.2.19. Use the URI option alphabet settings above.", "constantName": "org.apache.camel.component.smpp.SmppConstants#ALPHABET" },
@@ -139,21 +140,22 @@
     "typeOfNumber": { "index": 25, "kind": "parameter", "displayName": "Type Of Number", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "1", "2", "3", "4", "5", "6" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the type of number (TON) to be used in the SME. The followin [...]
     "lazyStartProducer": { "index": 26, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produ [...]
     "enquireLinkTimer": { "index": 27, "kind": "parameter", "displayName": "Enquire Link Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "60000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the interval in milliseconds between the confidence checks. T [...]
-    "pduProcessorDegree": { "index": 28, "kind": "parameter", "displayName": "Pdu Processor Degree", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the number of threads which can read PDU and process them in par [...]
-    "pduProcessorQueueCapacity": { "index": 29, "kind": "parameter", "displayName": "Pdu Processor Queue Capacity", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the capacity of the working queue for PDU proce [...]
-    "sessionStateListener": { "index": 30, "kind": "parameter", "displayName": "Session State Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.jsmpp.session.SessionStateListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "You can refer to a org.jsmpp.session.SessionStateListener in the R [...]
-    "singleDLR": { "index": 31, "kind": "parameter", "displayName": "Single DLR", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "When true, the SMSC delivery receipt would be requested only for the last segment of a multi-seg [...]
-    "transactionTimer": { "index": 32, "kind": "parameter", "displayName": "Transaction Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the maximum period of inactivity allowed after a transaction,  [...]
-    "alphabet": { "index": 33, "kind": "parameter", "displayName": "Alphabet", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "4", "8" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines encoding of data according the SMPP 3.4 specification, section 5.2.19. 0: SMSC Default Alphabet  [...]
-    "dataCoding": { "index": 34, "kind": "parameter", "displayName": "Data Coding", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the data coding according the SMPP 3.4 specification, section 5.2.19. Example data encodings are: 0: SMSC Default Alph [...]
-    "encoding": { "index": 35, "kind": "parameter", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ISO-8859-1", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the encoding scheme of the short message user data. Only for SubmitSm, ReplaceSm a [...]
-    "httpProxyHost": { "index": 36, "kind": "parameter", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the hostname or ip address of your HT [...]
-    "httpProxyPassword": { "index": 37, "kind": "parameter", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the password required for yo [...]
-    "httpProxyPort": { "index": 38, "kind": "parameter", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3128", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the port of [...]
-    "httpProxyUsername": { "index": 39, "kind": "parameter", "displayName": "Http Proxy Username", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the username required for yo [...]
-    "proxyHeaders": { "index": 40, "kind": "parameter", "displayName": "Proxy Headers", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "These headers will be passed to the proxy server while establishing the connec [...]
-    "password": { "index": 41, "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The password for connecting to SMSC server." },
-    "systemId": { "index": 42, "kind": "parameter", "displayName": "System Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "defaultValue": "smppclient", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The system id (username) for connecting to SMSC server." },
-    "usingSSL": { "index": 43, "kind": "parameter", "displayName": "Using SSL", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Whether using SSL with the smpps protocol" }
+    "interfaceVersion": { "index": 28, "kind": "parameter", "displayName": "Interface Version", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "legacy", "3.3", "3.4", "5.0" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3.4", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the interface version t [...]
+    "pduProcessorDegree": { "index": 29, "kind": "parameter", "displayName": "Pdu Processor Degree", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the number of threads which can read PDU and process them in par [...]
+    "pduProcessorQueueCapacity": { "index": 30, "kind": "parameter", "displayName": "Pdu Processor Queue Capacity", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the capacity of the working queue for PDU proce [...]
+    "sessionStateListener": { "index": 31, "kind": "parameter", "displayName": "Session State Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.jsmpp.session.SessionStateListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "You can refer to a org.jsmpp.session.SessionStateListener in the R [...]
+    "singleDLR": { "index": 32, "kind": "parameter", "displayName": "Single DLR", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "When true, the SMSC delivery receipt would be requested only for the last segment of a multi-seg [...]
+    "transactionTimer": { "index": 33, "kind": "parameter", "displayName": "Transaction Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the maximum period of inactivity allowed after a transaction,  [...]
+    "alphabet": { "index": 34, "kind": "parameter", "displayName": "Alphabet", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "4", "8" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines encoding of data according the SMPP 3.4 specification, section 5.2.19. 0: SMSC Default Alphabet  [...]
+    "dataCoding": { "index": 35, "kind": "parameter", "displayName": "Data Coding", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the data coding according the SMPP 3.4 specification, section 5.2.19. Example data encodings are: 0: SMSC Default Alph [...]
+    "encoding": { "index": 36, "kind": "parameter", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ISO-8859-1", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the encoding scheme of the short message user data. Only for SubmitSm, ReplaceSm a [...]
+    "httpProxyHost": { "index": 37, "kind": "parameter", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the hostname or ip address of your HT [...]
+    "httpProxyPassword": { "index": 38, "kind": "parameter", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the password required for yo [...]
+    "httpProxyPort": { "index": 39, "kind": "parameter", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3128", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the port of [...]
+    "httpProxyUsername": { "index": 40, "kind": "parameter", "displayName": "Http Proxy Username", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the username required for yo [...]
+    "proxyHeaders": { "index": 41, "kind": "parameter", "displayName": "Proxy Headers", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "These headers will be passed to the proxy server while establishing the connec [...]
+    "password": { "index": 42, "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The password for connecting to SMSC server." },
+    "systemId": { "index": 43, "kind": "parameter", "displayName": "System Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "defaultValue": "smppclient", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The system id (username) for connecting to SMSC server." },
+    "usingSSL": { "index": 44, "kind": "parameter", "displayName": "Using SSL", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Whether using SSL with the smpps protocol" }
   }
 }
diff --git a/components/camel-smpp/src/generated/resources/org/apache/camel/component/smpp/smpps.json b/components/camel-smpp/src/generated/resources/org/apache/camel/component/smpp/smpps.json
index 3d55f9a9379..3fff477cdf0 100644
--- a/components/camel-smpp/src/generated/resources/org/apache/camel/component/smpp/smpps.json
+++ b/components/camel-smpp/src/generated/resources/org/apache/camel/component/smpp/smpps.json
@@ -49,22 +49,23 @@
     "autowiredEnabled": { "index": 23, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching  [...]
     "configuration": { "index": 24, "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.smpp.SmppConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use the shared SmppConfiguration as configuration." },
     "enquireLinkTimer": { "index": 25, "kind": "property", "displayName": "Enquire Link Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "60000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the interval in milliseconds between the confidence checks. Th [...]
-    "pduProcessorDegree": { "index": 26, "kind": "property", "displayName": "Pdu Processor Degree", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the number of threads which can read PDU and process them in para [...]
-    "pduProcessorQueueCapacity": { "index": 27, "kind": "property", "displayName": "Pdu Processor Queue Capacity", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the capacity of the working queue for PDU proces [...]
-    "sessionStateListener": { "index": 28, "kind": "property", "displayName": "Session State Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.jsmpp.session.SessionStateListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "You can refer to a org.jsmpp.session.SessionStateListener in the Re [...]
-    "singleDLR": { "index": 29, "kind": "property", "displayName": "Single DLR", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "When true, the SMSC delivery receipt would be requested only for the last segment of a multi-segm [...]
-    "transactionTimer": { "index": 30, "kind": "property", "displayName": "Transaction Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the maximum period of inactivity allowed after a transaction, a [...]
-    "alphabet": { "index": 31, "kind": "property", "displayName": "Alphabet", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "4", "8" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines encoding of data according the SMPP 3.4 specification, section 5.2.19. 0: SMSC Default Alphabet 4 [...]
-    "dataCoding": { "index": 32, "kind": "property", "displayName": "Data Coding", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the data coding according the SMPP 3.4 specification, section 5.2.19. Example data encodings are: 0: SMSC Default Alpha [...]
-    "encoding": { "index": 33, "kind": "property", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ISO-8859-1", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the encoding scheme of the short message user data. Only for SubmitSm, ReplaceSm an [...]
-    "httpProxyHost": { "index": 34, "kind": "property", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the hostname or ip address of your HTT [...]
-    "httpProxyPassword": { "index": 35, "kind": "property", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the password required for you [...]
-    "httpProxyPort": { "index": 36, "kind": "property", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3128", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the port of  [...]
-    "httpProxyUsername": { "index": 37, "kind": "property", "displayName": "Http Proxy Username", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the username required for you [...]
-    "proxyHeaders": { "index": 38, "kind": "property", "displayName": "Proxy Headers", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "These headers will be passed to the proxy server while establishing the connect [...]
-    "password": { "index": 39, "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The password for connecting to SMSC server." },
-    "systemId": { "index": 40, "kind": "property", "displayName": "System Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "defaultValue": "smppclient", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The system id (username) for connecting to SMSC server." },
-    "usingSSL": { "index": 41, "kind": "property", "displayName": "Using SSL", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Whether using SSL with the smpps protocol" }
+    "interfaceVersion": { "index": 26, "kind": "property", "displayName": "Interface Version", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "legacy", "3.3", "3.4", "5.0" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3.4", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the interface version to [...]
+    "pduProcessorDegree": { "index": 27, "kind": "property", "displayName": "Pdu Processor Degree", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the number of threads which can read PDU and process them in para [...]
+    "pduProcessorQueueCapacity": { "index": 28, "kind": "property", "displayName": "Pdu Processor Queue Capacity", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the capacity of the working queue for PDU proces [...]
+    "sessionStateListener": { "index": 29, "kind": "property", "displayName": "Session State Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.jsmpp.session.SessionStateListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "You can refer to a org.jsmpp.session.SessionStateListener in the Re [...]
+    "singleDLR": { "index": 30, "kind": "property", "displayName": "Single DLR", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "When true, the SMSC delivery receipt would be requested only for the last segment of a multi-segm [...]
+    "transactionTimer": { "index": 31, "kind": "property", "displayName": "Transaction Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the maximum period of inactivity allowed after a transaction, a [...]
+    "alphabet": { "index": 32, "kind": "property", "displayName": "Alphabet", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "4", "8" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines encoding of data according the SMPP 3.4 specification, section 5.2.19. 0: SMSC Default Alphabet 4 [...]
+    "dataCoding": { "index": 33, "kind": "property", "displayName": "Data Coding", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the data coding according the SMPP 3.4 specification, section 5.2.19. Example data encodings are: 0: SMSC Default Alpha [...]
+    "encoding": { "index": 34, "kind": "property", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ISO-8859-1", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the encoding scheme of the short message user data. Only for SubmitSm, ReplaceSm an [...]
+    "httpProxyHost": { "index": 35, "kind": "property", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the hostname or ip address of your HTT [...]
+    "httpProxyPassword": { "index": 36, "kind": "property", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the password required for you [...]
+    "httpProxyPort": { "index": 37, "kind": "property", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3128", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the port of  [...]
+    "httpProxyUsername": { "index": 38, "kind": "property", "displayName": "Http Proxy Username", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the username required for you [...]
+    "proxyHeaders": { "index": 39, "kind": "property", "displayName": "Proxy Headers", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "These headers will be passed to the proxy server while establishing the connect [...]
+    "password": { "index": 40, "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The password for connecting to SMSC server." },
+    "systemId": { "index": 41, "kind": "property", "displayName": "System Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "defaultValue": "smppclient", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The system id (username) for connecting to SMSC server." },
+    "usingSSL": { "index": 42, "kind": "property", "displayName": "Using SSL", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Whether using SSL with the smpps protocol" }
   },
   "headers": {
     "CamelSmppAlphabet": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "Byte", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "For SubmitSm, SubmitMulti and ReplaceSm The data coding according to the SMPP 3.4 specification, section 5.2.19. Use the URI option alphabet settings above.", "constantName": "org.apache.camel.component.smpp.SmppConstants#ALPHABET" },
@@ -139,21 +140,22 @@
     "typeOfNumber": { "index": 25, "kind": "parameter", "displayName": "Type Of Number", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "1", "2", "3", "4", "5", "6" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the type of number (TON) to be used in the SME. The followin [...]
     "lazyStartProducer": { "index": 26, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produ [...]
     "enquireLinkTimer": { "index": 27, "kind": "parameter", "displayName": "Enquire Link Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "60000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the interval in milliseconds between the confidence checks. T [...]
-    "pduProcessorDegree": { "index": 28, "kind": "parameter", "displayName": "Pdu Processor Degree", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the number of threads which can read PDU and process them in par [...]
-    "pduProcessorQueueCapacity": { "index": 29, "kind": "parameter", "displayName": "Pdu Processor Queue Capacity", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the capacity of the working queue for PDU proce [...]
-    "sessionStateListener": { "index": 30, "kind": "parameter", "displayName": "Session State Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.jsmpp.session.SessionStateListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "You can refer to a org.jsmpp.session.SessionStateListener in the R [...]
-    "singleDLR": { "index": 31, "kind": "parameter", "displayName": "Single DLR", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "When true, the SMSC delivery receipt would be requested only for the last segment of a multi-seg [...]
-    "transactionTimer": { "index": 32, "kind": "parameter", "displayName": "Transaction Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the maximum period of inactivity allowed after a transaction,  [...]
-    "alphabet": { "index": 33, "kind": "parameter", "displayName": "Alphabet", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "4", "8" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines encoding of data according the SMPP 3.4 specification, section 5.2.19. 0: SMSC Default Alphabet  [...]
-    "dataCoding": { "index": 34, "kind": "parameter", "displayName": "Data Coding", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the data coding according the SMPP 3.4 specification, section 5.2.19. Example data encodings are: 0: SMSC Default Alph [...]
-    "encoding": { "index": 35, "kind": "parameter", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ISO-8859-1", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the encoding scheme of the short message user data. Only for SubmitSm, ReplaceSm a [...]
-    "httpProxyHost": { "index": 36, "kind": "parameter", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the hostname or ip address of your HT [...]
-    "httpProxyPassword": { "index": 37, "kind": "parameter", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the password required for yo [...]
-    "httpProxyPort": { "index": 38, "kind": "parameter", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3128", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the port of [...]
-    "httpProxyUsername": { "index": 39, "kind": "parameter", "displayName": "Http Proxy Username", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the username required for yo [...]
-    "proxyHeaders": { "index": 40, "kind": "parameter", "displayName": "Proxy Headers", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "These headers will be passed to the proxy server while establishing the connec [...]
-    "password": { "index": 41, "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The password for connecting to SMSC server." },
-    "systemId": { "index": 42, "kind": "parameter", "displayName": "System Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "defaultValue": "smppclient", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The system id (username) for connecting to SMSC server." },
-    "usingSSL": { "index": 43, "kind": "parameter", "displayName": "Using SSL", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Whether using SSL with the smpps protocol" }
+    "interfaceVersion": { "index": 28, "kind": "parameter", "displayName": "Interface Version", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "legacy", "3.3", "3.4", "5.0" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3.4", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the interface version t [...]
+    "pduProcessorDegree": { "index": 29, "kind": "parameter", "displayName": "Pdu Processor Degree", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the number of threads which can read PDU and process them in par [...]
+    "pduProcessorQueueCapacity": { "index": 30, "kind": "parameter", "displayName": "Pdu Processor Queue Capacity", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Sets the capacity of the working queue for PDU proce [...]
+    "sessionStateListener": { "index": 31, "kind": "parameter", "displayName": "Session State Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.jsmpp.session.SessionStateListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "You can refer to a org.jsmpp.session.SessionStateListener in the R [...]
+    "singleDLR": { "index": 32, "kind": "parameter", "displayName": "Single DLR", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "When true, the SMSC delivery receipt would be requested only for the last segment of a multi-seg [...]
+    "transactionTimer": { "index": 33, "kind": "parameter", "displayName": "Transaction Timer", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the maximum period of inactivity allowed after a transaction,  [...]
+    "alphabet": { "index": 34, "kind": "parameter", "displayName": "Alphabet", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "enum": [ "0", "4", "8" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines encoding of data according the SMPP 3.4 specification, section 5.2.19. 0: SMSC Default Alphabet  [...]
+    "dataCoding": { "index": 35, "kind": "parameter", "displayName": "Data Coding", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "byte", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the data coding according the SMPP 3.4 specification, section 5.2.19. Example data encodings are: 0: SMSC Default Alph [...]
+    "encoding": { "index": 36, "kind": "parameter", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ISO-8859-1", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Defines the encoding scheme of the short message user data. Only for SubmitSm, ReplaceSm a [...]
+    "httpProxyHost": { "index": 37, "kind": "parameter", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the hostname or ip address of your HT [...]
+    "httpProxyPassword": { "index": 38, "kind": "parameter", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the password required for yo [...]
+    "httpProxyPort": { "index": 39, "kind": "parameter", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3128", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the port of [...]
+    "httpProxyUsername": { "index": 40, "kind": "parameter", "displayName": "Http Proxy Username", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "If your HTTP proxy requires basic authentication, set this attribute to the username required for yo [...]
+    "proxyHeaders": { "index": 41, "kind": "parameter", "displayName": "Proxy Headers", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "These headers will be passed to the proxy server while establishing the connec [...]
+    "password": { "index": 42, "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The password for connecting to SMSC server." },
+    "systemId": { "index": 43, "kind": "parameter", "displayName": "System Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "defaultValue": "smppclient", "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "The system id (username) for connecting to SMSC server." },
+    "usingSSL": { "index": 44, "kind": "parameter", "displayName": "Using SSL", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smpp.SmppConfiguration", "configurationField": "configuration", "description": "Whether using SSL with the smpps protocol" }
   }
 }
diff --git a/components/camel-smpp/src/main/docs/smpp-component.adoc b/components/camel-smpp/src/main/docs/smpp-component.adoc
index aa1d4f230dc..a1e6748b640 100644
--- a/components/camel-smpp/src/main/docs/smpp-component.adoc
+++ b/components/camel-smpp/src/main/docs/smpp-component.adoc
@@ -19,6 +19,8 @@ over the http://smsforum.net/SMPP_v3_4_Issue1_2.zip[SMPP] protocol to
 send and receive SMS. The http://jsmpp.org[JSMPP] library is used for
 the protocol implementation.
 
+The version of the SMPP protocol specification is 3.4 by default and can be set using the component configuration options (field "interfaceVersion").
+
 The Camel component currently operates as an
 http://en.wikipedia.org/wiki/ESME[ESME] (External Short Messaging
 Entity) and not as an SMSC itself.
diff --git a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java
index 8b2e222254d..fd00ca74abe 100644
--- a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java
+++ b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java
@@ -24,11 +24,7 @@ import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
-import org.jsmpp.bean.Alphabet;
-import org.jsmpp.bean.NumberingPlanIndicator;
-import org.jsmpp.bean.ReplaceIfPresentFlag;
-import org.jsmpp.bean.SMSCDeliveryReceipt;
-import org.jsmpp.bean.TypeOfNumber;
+import org.jsmpp.bean.*;
 import org.jsmpp.session.SessionStateListener;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -120,6 +116,8 @@ public class SmppConfiguration implements Cloneable {
     private Integer pduProcessorQueueCapacity = 100;
     @UriParam(label = "advanced", defaultValue = "false")
     private boolean singleDLR;
+    @UriParam(label = "advanced", enums = "legacy,3.3,3.4,5.0", defaultValue = "3.4")
+    private String interfaceVersion = "3.4";
 
     /**
      * A POJO which contains all necessary configuration parameters for the SMPP connection
@@ -733,6 +731,29 @@ public class SmppConfiguration implements Cloneable {
         this.singleDLR = singleDLR;
     }
 
+    public String getInterfaceVersion() {
+        return interfaceVersion;
+    }
+
+    /**
+     * Defines the interface version to be used in the binding request with the SMSC. The following values are allowed,
+     * as defined in the SMPP protocol (and the underlying implementation using the jSMPP library, respectively):
+     * "legacy" (0x00), "3.3" (0x33), "3.4" (0x34), and "5.0" (0x50). The default (fallback) value is version 3.4.
+     */
+    public void setInterfaceVersion(String interfaceVersion) {
+        this.interfaceVersion = interfaceVersion;
+    }
+
+    public InterfaceVersion getInterfaceVersionByte() {
+        return switch (interfaceVersion) {
+            case "legacy" -> InterfaceVersion.IF_00;
+            case "3.3" -> InterfaceVersion.IF_33;
+            case "3.4" -> InterfaceVersion.IF_34;
+            case "5.0" -> InterfaceVersion.IF_50;
+            default -> InterfaceVersion.IF_34;
+        };
+    }
+
     @Override
     public String toString() {
         return "SmppConfiguration[usingSSL=" + usingSSL
@@ -774,6 +795,7 @@ public class SmppConfiguration implements Cloneable {
                + ", httpProxyPassword=" + httpProxyPassword
                + ", splittingPolicy=" + splittingPolicy
                + ", proxyHeaders=" + proxyHeaders
+               + ", interfaceVersion=" + interfaceVersion
                + "]";
     }
 }
diff --git a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConsumer.java b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConsumer.java
index 94e36b4a910..6f35a09f6d5 100644
--- a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConsumer.java
+++ b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConsumer.java
@@ -109,7 +109,8 @@ public class SmppConsumer extends DefaultConsumer {
                         BindType.BIND_RX, this.configuration.getSystemId(),
                         this.configuration.getPassword(), this.configuration.getSystemType(),
                         TypeOfNumber.UNKNOWN, NumberingPlanIndicator.UNKNOWN,
-                        configuration.getAddressRange()));
+                        configuration.getAddressRange(),
+                        configuration.getInterfaceVersionByte()));
 
         return newSession;
     }
diff --git a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java
index 0be92c020c4..00e304eaa46 100644
--- a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java
+++ b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppProducer.java
@@ -123,7 +123,8 @@ public class SmppProducer extends DefaultProducer {
                         this.configuration.getSystemType(),
                         TypeOfNumber.valueOf(configuration.getTypeOfNumber()),
                         NumberingPlanIndicator.valueOf(configuration.getNumberingPlanIndicator()),
-                        ""));
+                        "",
+                        configuration.getInterfaceVersionByte()));
 
         LOG.info("Connected to: {}", getEndpoint().getConnectionString());
 
diff --git a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppConfigurationTest.java b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppConfigurationTest.java
index 9aedb4a0364..9801353c3f4 100644
--- a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppConfigurationTest.java
+++ b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppConfigurationTest.java
@@ -82,6 +82,7 @@ public class SmppConfigurationTest {
         assertEquals(3, configuration.getPduProcessorDegree());
         assertEquals(100, configuration.getPduProcessorQueueCapacity());
         assertEquals(false, configuration.isSingleDLR());
+        assertEquals("3.4", configuration.getInterfaceVersion());
         assertNull(configuration.getMessageReceiverRouteId());
     }
 
@@ -122,6 +123,7 @@ public class SmppConfigurationTest {
         assertEquals(80, configuration.getPduProcessorQueueCapacity());
         assertEquals(1, configuration.getPduProcessorDegree());
         assertEquals(true, configuration.isSingleDLR());
+        assertEquals("5.0", configuration.getInterfaceVersion());
         assertEquals("testMessageReceiverRouteId", configuration.getMessageReceiverRouteId());
     }
 
@@ -183,6 +185,7 @@ public class SmppConfigurationTest {
         assertEquals(config.getSessionStateListener(), configuration.getSessionStateListener());
         assertEquals(config.getProxyHeaders(), configuration.getProxyHeaders());
         assertEquals(config.isSingleDLR(), configuration.isSingleDLR());
+        assertEquals(config.getInterfaceVersion(), configuration.getInterfaceVersion());
         assertEquals(config.getMessageReceiverRouteId(), configuration.getMessageReceiverRouteId());
     }
 
@@ -227,7 +230,8 @@ public class SmppConfigurationTest {
                           + "httpProxyUsername=null, "
                           + "httpProxyPassword=null, "
                           + "splittingPolicy=ALLOW, "
-                          + "proxyHeaders=null]";
+                          + "proxyHeaders=null, "
+                          + "interfaceVersion=3.4]";
 
         assertEquals(expected, configuration.toString());
     }
@@ -271,6 +275,7 @@ public class SmppConfigurationTest {
         config.setPduProcessorQueueCapacity(80);
         config.setPduProcessorDegree(1);
         config.setSingleDLR(true);
+        config.setInterfaceVersion("5.0");
         config.setMessageReceiverRouteId("testMessageReceiverRouteId");
     }
 }
diff --git a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppProducerTest.java b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppProducerTest.java
index 6d89acabb9f..ebf5b0491b0 100644
--- a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppProducerTest.java
+++ b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/SmppProducerTest.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.smpp;
 
 import org.apache.camel.Exchange;
 import org.jsmpp.bean.BindType;
+import org.jsmpp.bean.InterfaceVersion;
 import org.jsmpp.bean.NumberingPlanIndicator;
 import org.jsmpp.bean.TypeOfNumber;
 import org.jsmpp.session.BindParameter;
@@ -48,6 +49,7 @@ public class SmppProducerTest {
         configuration.setServiceType("CMT");
         configuration.setSystemType("cp");
         configuration.setPassword("password");
+        configuration.setInterfaceVersion("5.0");
         endpoint = mock(SmppEndpoint.class);
         session = mock(SMPPSession.class);
 
@@ -69,7 +71,8 @@ public class SmppProducerTest {
                 "cp",
                 TypeOfNumber.UNKNOWN,
                 NumberingPlanIndicator.UNKNOWN,
-                "");
+                "",
+                InterfaceVersion.IF_50);
         when(session.connectAndBind("localhost", Integer.valueOf(2775), expectedBindParameters))
                 .thenReturn("1");
         when(endpoint.isSingleton()).thenReturn(true);