Modified: websites/production/camel/content/smpp.html
==============================================================================
--- websites/production/camel/content/smpp.html (original)
+++ websites/production/camel/content/smpp.html Thu Mar 10 07:20:48 2016
@@ -85,7 +85,7 @@
<tbody>
<tr>
<td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 id="SMPP-SMPPComponent">SMPP
Component</h2><p><strong>Available as of Camel 2.2</strong></p><p>This
component provides access to an SMSC (Short Message Service Center) over the <a
shape="rect" class="external-link"
href="http://smsforum.net/SMPP_v3_4_Issue1_2.zip" rel="nofollow">SMPP</a>
protocol to send and receive SMS. The <a shape="rect" class="external-link"
href="http://jsmpp.org" rel="nofollow">JSMPP</a> library is used for the
protocol implementation.</p><p>The Camel component currently operates as an <a
shape="rect" class="external-link" href="http://en.wikipedia.org/wiki/ESME"
rel="nofollow">ESME</a> (External Short Messaging Entity) and not as an SMSC
itself.</p><p>Starting with<strong> Camel 2.9</strong> you are also able
to execute ReplaceSm, QuerySm, SubmitMulti, CancelSm and DataSm.</p><p>Maven
users will need to add the following dependency to their <code>pom.xml</code>
for this component:</p><div class="code panel pdl" s
tyle="border-width: 1px;"><div class="codeContent panelContent pdl">
+<div class="wiki-content maincontent"><h2 id="SMPP-SMPPComponent">SMPP
Component</h2><p><strong>CamelSmppFinalStatusAvailable as of Camel
2.2</strong></p><p>This component provides access to an SMSC (Short Message
Service Center) over the <a shape="rect" class="external-link"
href="http://smsforum.net/SMPP_v3_4_Issue1_2.zip" rel="nofollow">SMPP</a>
protocol to send and receive SMS. The <a shape="rect" class="external-link"
href="http://jsmpp.org" rel="nofollow">JSMPP</a> library is used for the
protocol implementation.</p><p>The Camel component currently operates as an <a
shape="rect" class="external-link" href="http://en.wikipedia.org/wiki/ESME"
rel="nofollow">ESME</a> (External Short Messaging Entity) and not as an SMSC
itself.</p><p>Starting with<strong> Camel 2.9</strong> you are also able
to execute ReplaceSm, QuerySm, SubmitMulti, CancelSm and DataSm.</p><p>Maven
users will need to add the following dependency to their <code>pom.xml</code>
for this component:</p><div clas
s="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
<script class="brush: xml; gutter: false; theme: Default"
type="syntaxhighlighter"><![CDATA[<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-smpp</artifactId>
@@ -103,7 +103,7 @@ smpps://[username@]hostname[:port][?opti
</div></div><p>If no <strong>username</strong> is provided, then Camel will
provide the default value <code>smppclient</code>.<br clear="none"> If no
<strong>port</strong> number is provided, then Camel will provide the default
value <code>2775</code>.<br clear="none"> <strong>Camel 2.3:</strong> If the
protocol name is "smpps", camel-smpp with try to use SSLSocket to init a
connection to the server.</p><p>You can append query options to the URI in the
following format, <code>?option=value&option=value&...</code></p><h3
id="SMPP-URIOptions">URI Options</h3><div class="confluenceTableSmall"><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>password</code></p></td><td
colspan="1" rowspan=
"1" class="confluenceTd"><p><code>password</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Specifies the password to use to log in to
the SMSC.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>systemType</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>cp</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>This parameter is used to categorize the
type of ESME (External Short Message Entity) that is binding to the SMSC (max.
13 characters).</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>dataCoding</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11</strong> Defines the
data coding according the SMPP 3.4 specification, section 5.2.19. (Prior to
<strong>Camel 2.9</strong>, this option is also supported.) Example data
encodings are:<br clear="none" class="atl-forced-new
line"> <code>0</code>: SMSC Default Alphabet<br clear="none"
class="atl-forced-newline"> <code>3</code>: Latin 1 (ISO-8859-1)<br
clear="none" class="atl-forced-newline"> <code>4</code>: Octet unspecified
(8-bit binary)<br clear="none" class="atl-forced-newline"> <code>8</code>: UCS2
(ISO/IEC-10646)<br clear="none" class="atl-forced-newline"> <code>13</code>:
Extended Kanji JIS(X 0212-1990)</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>alphabet</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>Camel 2.5</strong> Defines encoding
of data according the SMPP 3.4 specification, section 5.2.19. This option is
mapped to <a shape="rect" class="external-link"
href="http://code.google.com/p/jsmpp/source/browse/tags/2.1.0/src/java/main/org/jsmpp/bean/Alphabet.java"
rel="nofollow"><code>Alphabet.java</code></a> and used to create the
<code>byte[]</code> which is send
to the SMSC. Example alphabets are:<br clear="none"
class="atl-forced-newline"> <code>0</code>: SMSC Default Alphabet<br
clear="none" class="atl-forced-newline"> <code>4</code>: 8 bit Alphabet<br
clear="none" class="atl-forced-newline"> <code>8</code>: UCS2
Alphabet</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>encoding</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>ISO-8859-1</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm,
ReplaceSm and SubmitMulti</strong> Defines the encoding scheme of the short
message user data.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>enquireLinkTimer</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>5000</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Defines the interval in milliseconds
between the confidence checks. The confidence check is used to test the
communication path between
an ESME and an SMSC.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>transactionTimer</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>10000</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Defines the maximum period of inactivity
allowed after a transaction, after which an SMPP entity may assume that the
session is no longer active. This timer may be active on either communicating
SMPP entity (i.e. SMSC or ESME).</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>initialReconnectDelay</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>5000</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Defines the initial delay in
milliseconds after the consumer/producer tries to reconnect to the SMSC, after
the connection was lost.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>reconnectDelay</code></p></td><td colspan="1"
rowspan="1" cl
ass="confluenceTd"><p><code>5000</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Defines the interval in milliseconds between the
reconnect attempts, if the connection to the SMSC was lost and the previous was
not succeed.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>registeredDelivery</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>1</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm, ReplaceSm,
SubmitMulti and DataSm</strong> Is used to request an SMSC delivery receipt
and/or SME originated acknowledgements. The following values are defined:<br
clear="none" class="atl-forced-newline"> <code>0</code>: No SMSC delivery
receipt requested.<br clear="none" class="atl-forced-newline"> <code>1</code>:
SMSC delivery receipt requested where final delivery outcome is success or
failure.<br clear="none" class="atl-forced-newline"> <code>2</code>: SMSC
delivery receipt requested
where the final delivery outcome is delivery failure.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>serviceType</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>CMT</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>The service type parameter can be used to
indicate the SMS Application service associated with the message. The following
generic service_types are defined:<br clear="none" class="atl-forced-newline">
<code>CMT</code>: Cellular Messaging<br clear="none"
class="atl-forced-newline"> <code>CPT</code>: Cellular Paging<br clear="none"
class="atl-forced-newline"> <code>VMN</code>: Voice Mail Notification<br
clear="none" class="atl-forced-newline"> <code>VMA</code>: Voice Mail
Alerting<br clear="none" class="atl-forced-newline"> <code>WAP</code>: Wireless
Application Protocol<br clear="none" class="atl-forced-newline">
<code>USSD</code>: Unstructured Supplementary Services
Data</p></td></tr><tr><td colspan="1
" rowspan="1" class="confluenceTd"><p><code>sourceAddr</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>1616</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Defines the address of SME
(Short Message Entity) which originated this message.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>destAddr</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>1717</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm, SubmitMulti,
CancelSm and DataSm</strong> Defines the destination SME address. For mobile
terminated messages, this is the directory number of the recipient
MS.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>sourceAddrTon</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Defines the type of number (TON) to be used
in the SME originator ad
dress parameters. The following TON values are defined:<br clear="none"
class="atl-forced-newline"> <code>0</code>: Unknown<br clear="none"
class="atl-forced-newline"> <code>1</code>: International<br clear="none"
class="atl-forced-newline"> <code>2</code>: National<br clear="none"
class="atl-forced-newline"> <code>3</code>: Network Specific<br clear="none"
class="atl-forced-newline"> <code>4</code>: Subscriber Number<br clear="none"
class="atl-forced-newline"> <code>5</code>: Alphanumeric<br clear="none"
class="atl-forced-newline"> <code>6</code>: Abbreviated</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>destAddrTon</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm, SubmitMulti,
CancelSm and DataSm</strong> Defines the type of number (TON) to be used in the
SME destination address parameters. Same as the <code>sourceAddrTon</code>
values
defined above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>sourceAddrNpi</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Defines the numeric plan indicator (NPI) to
be used in the SME originator address parameters. The following NPI values are
defined: <br clear="none" class="atl-forced-newline"> <code>0</code>:
Unknown<br clear="none" class="atl-forced-newline"> <code>1</code>: ISDN
(E163/E164)<br clear="none" class="atl-forced-newline"> <code>2</code>: Data
(X.121)<br clear="none" class="atl-forced-newline"> <code>3</code>: Telex
(F.69)<br clear="none" class="atl-forced-newline"> <code>6</code>: Land Mobile
(E.212)<br clear="none" class="atl-forced-newline"> <code>8</code>: National<br
clear="none" class="atl-forced-newline"> <code>9</code>: Private<br
clear="none" class="atl-forced-newline"> <code>10</code>: ERMES<br clear="none"
class="atl-forced-newline"
> <code>13</code>: Internet (IP)<br clear="none" class="atl-forced-newline">
> <code>18</code>: WAP Client Id (to be defined by WAP
> Forum)</p></td></tr><tr><td colspan="1" rowspan="1"
> class="confluenceTd"><p><code>destAddrNpi</code></p></td><td colspan="1"
> rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1"
> rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm, SubmitMulti,
> CancelSm and DataSm</strong> Defines the numeric plan indicator (NPI) to be
> used in the SME destination address parameters. Same as the
> <code>sourceAddrNpi</code> values defined above.</p></td></tr><tr><td
> colspan="1" rowspan="1"
> class="confluenceTd"><p><code>priorityFlag</code></p></td><td colspan="1"
> rowspan="1" class="confluenceTd"><p><code>1</code></p></td><td colspan="1"
> rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm and
> SubmitMulti</strong> Allows the originating SME to assign a priority level
> to the short message. Four Priority Levels are supported:<br clear="non
e" class="atl-forced-newline"> <code>0</code>: Level 0 (lowest) priority<br
clear="none" class="atl-forced-newline"> <code>1</code>: Level 1 priority<br
clear="none" class="atl-forced-newline"> <code>2</code>: Level 2 priority<br
clear="none" class="atl-forced-newline"> <code>3</code>: Level 3 (highest)
priority</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>replaceIfPresentFlag</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm and
SubmitMulti</strong> Used to request the SMSC to replace a previously submitted
message, that is still pending delivery. The SMSC will replace an existing
message provided that the source address, destination address and service type
match the same fields in the new message. The following replace if present flag
values are defined: <br clear="none" class="atl-forced-newline">
<code>0</code>: Don't replace<br cle
ar="none" class="atl-forced-newline"> <code>1</code>:
Replace</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>typeOfNumber</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Defines the type of number (TON) to be used
in the SME. Use the <code>sourceAddrTon</code> values defined
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>numberingPlanIndicator</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Defines the numeric plan
indicator (NPI) to be used in the SME. Use the <code>sourceAddrNpi</code>
values defined above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>lazySessionCreation</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="conflue
nceTd"><p><strong>Camel 2.8 onwards</strong> Sessions can be lazily created to
avoid exceptions, if the SMSC is not available when the Camel producer is
started.<br clear="none" class="atl-forced-newline"> <strong>Camel 2.11
onwards</strong> Camel will check the in message headers 'CamelSmppSystemId'
and 'CamelSmppPassword' of the first exchange. If they are present, Camel will
use these data to connect to the SMSC.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>httpProxyHost</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9.1:</strong>
If you need to tunnel SMPP through a HTTP proxy, set this attribute to the
hostname or ip address of your HTTP proxy.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>httpProxyPort</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>3128</code></p></td><td
colspan="
1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9.1:</strong> If you
need to tunnel SMPP through a HTTP proxy, set this attribute to the port of
your HTTP proxy.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>httpProxyUsername</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>Camel 2.9.1:</strong> If your HTTP
proxy requires basic authentication, set this attribute to the username
required for your HTTP proxy.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>httpProxyPassword</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>Camel 2.9.1:</strong> If your HTTP
proxy requires basic authentication, set this attribute to the password
required for your HTTP proxy.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluence
Td"><p><code>sessionStateListener</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.9.3:</strong> You can refer to a
<code>org.jsmpp.session.SessionStateListener</code> in the
<code>Registry</code> to receive callbacks when the session state
changed.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>addressRange</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>""</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> You can
specify the address range for the <code>SmppConsumer</code> as defined in
section 5.2.7 of the SMPP 3.4 specification. The <code>SmppConsumer</code> will
receive messages only from SMSC's which target an address (MSISDN or IP
address) within this range.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">splittingPolicy</td><td colspan="1" rowspan="1"
class="confluenceTd">ALLOW</td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.14.1 and 2.15.0:</strong> You can
specify a policy for handling long messages:</p><ul><li>ALLOW - the default,
long messages are split to 140 bytes per message</li><li>TRUNCATE - long
messages are split and only the first fragment will be sent to the SMSC. 
Some carriers drop subsequent fragments so this reduces load on the SMPP
connection sending parts of a message that will never be
delivered.</li><li>REJECT - if a message would need to be split, it is rejected
with an SMPP NegativeResponseException and the reason code signifying the
message is too long.</li></ul></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">proxyHeaders</td><td colspan="1" rowspan="1"
class="confluenceTd">null</td><td colspan="1" rowspan="1"
class="confluenceTd"><strong>Camel 2.17:</strong> These headers will be passed
to the proxy server while establishing the connection.</td></tr></tbody></t
able></div></div><p>You can have as many of these options as you like.</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
<script class="brush: java; gutter: false; theme: Default"
type="syntaxhighlighter"><![CDATA[smpp://smppclient@localhost:2775?password=password&enquireLinkTimer=3000&transactionTimer=5000&systemType=consumer
]]></script>
-</div></div><h3 id="SMPP-ProducerMessageHeaders">Producer Message
Headers</h3><p>The following message headers can be used to affect the behavior
of the SMPP producer</p><div class="confluenceTableSmall"><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>CamelSmppDestAddr</code></p></td><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>List</code>/<code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm,
SubmitMulti, CancelSm and DataSm</strong> Defines the destination SME
address(es). For mobile terminated messages, this is the directory number of
the recipient MS. Is must be a <code>List<String></code> for SubmitMulti
and a <code>String</
code> otherwise.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppDestAddrTon</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm,
SubmitMulti, CancelSm and DataSm</strong> Defines the type of number (TON) to
be used in the SME destination address parameters. Use the
<code>sourceAddrTon</code> URI option values defined
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppDestAddrNpi</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm,
SubmitMulti, CancelSm and DataSm</strong> Defines the numeric plan indicator
(NPI) to be used in the SME destination address parameters. Use the URI option
<code>sourceAddrNpi</code> values defined above.</p></td></tr><tr><td
colspan="1" rowspan="
1" class="confluenceTd"><p><code>CamelSmppSourceAddr</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Defines the address of SME
(Short Message Entity) which originated this message.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppSourceAddrTon</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Defines the type of number
(TON) to be used in the SME originator address parameters. Use the
<code>sourceAddrTon</code> URI option values defined
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppSourceAddrNpi</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Defines the numeric plan
indicator (NPI) to be used in the SME originator ad
dress parameters. Use the URI option <code>sourceAddrNpi</code> values defined
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppServiceType</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The service type parameter can
be used to indicate the SMS Application service associated with the message.
Use the URI option <code>serviceType</code> settings
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppRegisteredDelivery</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm,
ReplaceSm, SubmitMulti and DataSm</strong> Is used to request an SMSC delivery
receipt and/or SME originated acknowledgements. Use the URI option
<code>registeredDelivery</code> settings above.</p></td></tr><tr><td colspan="1
" rowspan="1"
class="confluenceTd"><p><code>CamelSmppPriorityFlag</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm and
SubmitMulti</strong> Allows the originating SME to assign a priority level to
the short message. Use the URI option <code>priorityFlag</code> settings
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppScheduleDeliveryTime</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Date</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm,
SubmitMulti and ReplaceSm</strong> This parameter specifies the scheduled time
at which the message delivery should be first attempted. It defines either the
absolute date and time or relative time from the current SMSC time at which
delivery of this message will be attempted by the SMSC. It can be specified in
either a
bsolute time format or relative time format. The encoding of a time format is
specified in chapter 7.1.1. in the smpp specification
v3.4.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppValidityPeriod</code></p></td><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>String</code>/<code>Date</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm,
SubmitMulti and ReplaceSm</strong> The validity period parameter indicates the
SMSC expiration time, after which the message should be discarded if not
delivered to the destination. If it's provided as <code>Date</code>, it's
interpreted as absolute time. <strong>Camel 2.9.1 onwards:</strong> It can be
defined in absolute time format or relative time format if you provide it as
<code>String</code> as specified in chapter 7.1.1 in the smpp specification
v3.4.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppReplaceIfPresentFlag<
/code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>Byte</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>only for SubmitSm and SubmitMulti</strong> The
replace if present flag parameter is used to request the SMSC to replace a
previously submitted message, that is still pending delivery. The SMSC will
replace an existing message provided that the source address, destination
address and service type match the same fields in the new message. The
following values are defined: <br clear="none" class="atl-forced-newline">
<code>0</code>: Don't replace<br clear="none" class="atl-forced-newline">
<code>1</code>: Replace</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppAlphabet</code> /
<code>CamelSmppDataCoding</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>Byte</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.5</strong> <strong>For SubmitSm, Submit
Multi and ReplaceSm</strong> (Prior to <strong>Camel 2.9</strong> use
<code>CamelSmppDataCoding</code> instead of <code>CamelSmppAlphabet</code>.)
The data coding according to the SMPP 3.4 specification, section 5.2.19. Use
the URI option <code>alphabet</code> settings above.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppOptionalParameters</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Map<String,
String></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Deprecated and will be removed in Camel
2.13.0/3.0.0</strong><br clear="none" class="atl-forced-newline"> <strong>Camel
2.10.5 and 2.11.1 onwards and only for SubmitSm, SubmitMulti and
DataSm</strong> The optional parameters send back by the
SMSC.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppOptionalParameter</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Map<Short, Object
></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.10.7 and 2.11.2 onwards and only for
SubmitSm, SubmitMulti and DataSm</strong> The optional parameter which are send
to the SMSC. The value is converted in the following way:<br clear="none"
class="atl-forced-newline"> <code>String</code> ->
<code>org.jsmpp.bean.OptionalParameter.COctetString</code><br clear="none"
class="atl-forced-newline"> <code>byte[]</code> ->
<code>org.jsmpp.bean.OptionalParameter.OctetString</code><br clear="none"
class="atl-forced-newline"> <code>Byte</code> ->
<code>org.jsmpp.bean.OptionalParameter.Byte</code><br clear="none"
class="atl-forced-newline"> <code>Integer</code> ->
<code>org.jsmpp.bean.OptionalParameter.Int</code><br clear="none"
class="atl-forced-newline"> <code>Short</code> ->
<code>org.jsmpp.bean.OptionalParameter.Short</code><br clear="none"
class="atl-forced-newline"> <code>null</code> ->
<code>org.jsmpp.bean.OptionalParameter.Null</cod
e></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelSmppEncoding</td><td colspan="1" rowspan="1"
class="confluenceTd">String</td><td colspan="1" rowspan="1"
class="confluenceTd"><strong>Camel 2.14.1 and Camel 2.15.0 onwards and
</strong><strong>only for SubmitSm, SubmitMulti and DataSm</strong>. 
Specifies the encoding (character set name) of the bytes in the message
body.  If the message body is a string then this is not relevant because
Java Strings are always Unicode.  If the body is a byte array then this
header can be used to indicate that it is ISO-8859-1 or some other value. 
Default value is specified by the endpoint configuration parameter
<em>encoding</em></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelSmppSplittingPolicy</td><td colspan="1" rowspan="1"
class="confluenceTd">String</td><td colspan="1" rowspan="1"
class="confluenceTd"><strong>Camel 2.14.1 and Camel 2.15.0 onwards and
</strong><strong>only for Subm
itSm, SubmitMulti and DataSm</strong>.  Specifies the policy for message
splitting for this exchange.  Possible values are described in the
endpoint configuration parameter
<em>splittingPolicy</em></td></tr></tbody></table></div></div><p>The following
message headers are used by the SMPP producer to set the response from the SMSC
in the message header</p><div class="confluenceTableSmall"><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>CamelSmppId</code></p></td><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>List<String></code>/<code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The id to identify the
submitted short message(s) for later use. <st
rong>From Camel 2.9.0</strong>: In case of a ReplaceSm, QuerySm, CancelSm and
DataSm this header vaule is a <code>String</code>. In case of a SubmitSm or
SubmitMultiSm this header vaule is a
<code>List<String></code>.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppSentMessageCount</code></p></td><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>From Camel 2.9 onwards only for
SubmitSm and SubmitMultiSm</strong> The total number of messages which has been
sent.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppError</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>Map<String, List<Map<String,
Object>>></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>From Camel 2.9 onwards only for
SubmitMultiSm</strong> The errors which occurred by sending the short m
essage(s) the form <code>Map<String, List<Map<String,
Object>>></code> (messageID : (destAddr : address, error :
errorCode)).</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppOptionalParameters</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Map<String,
String></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Deprecated and will be removed in Camel
2.13.0/3.0.0</strong><br clear="none" class="atl-forced-newline"> <strong>From
Camel 2.11.1 onwards only for DataSm</strong> The optional parameters which are
returned from the SMSC by sending the message.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code>CamelSmppOptionalParameter</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Map<Short,
Object></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>From Camel 2.10.7, 2.11.2 onwards only for
DataSm</stro
ng> The optional parameter which are returned from the SMSC by sending the
message. The key is the <code>Short</code> code for the optional parameter. The
value is converted in the following way:<br clear="none"
class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.COctetString</code> ->
<code>String</code><br clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.OctetString</code> ->
<code>byte[]</code><br clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.Byte</code> -> <code>Byte</code><br
clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.Int</code> -> <code>Integer</code><br
clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.Short</code> -> <code>Short</code><br
clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.Null</code> ->
<code>null</code></p></td></tr></tbody></table></div></div><h3
id="SMPP-ConsumerMe
ssageHeaders">Consumer Message Headers</h3><p>The following message headers
are used by the SMPP consumer to set the request data from the SMSC in the
message header</p><div class="confluenceTableSmall"><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code>CamelSmppSequenceNumber</code></p></td><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>only for AlertNotification,
DeliverSm and DataSm</strong> A sequence number allows a response PDU to be
correlated with a request PDU. The associated SMPP response PDU must preserve
this field.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmp
pCommandId</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>only for AlertNotification,
DeliverSm and DataSm</strong> The command id field identifies the particular
SMPP PDU. For the complete list of defined values see chapter 5.1.2.1 in the
smpp specification v3.4.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppSourceAddr</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for
AlertNotification, DeliverSm and DataSm</strong> Defines the address of SME
(Short Message Entity) which originated this message.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppSourceAddrNpi</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluen
ceTd"><p><strong>only for AlertNotification and DataSm</strong> Defines the
numeric plan indicator (NPI) to be used in the SME originator address
parameters. Use the URI option <code>sourceAddrNpi</code> values defined
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppSourceAddrTon</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for
AlertNotification and DataSm</strong> Defines the type of number (TON) to be
used in the SME originator address parameters. Use the
<code>sourceAddrTon</code> URI option values defined
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppEsmeAddr</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>only for AlertNotification</strong>
Defines the destination ESME addres
s. For mobile terminated messages, this is the directory number of the
recipient MS.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppEsmeAddrNpi</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for
AlertNotification</strong> Defines the numeric plan indicator (NPI) to be used
in the ESME originator address parameters. Use the URI option
<code>sourceAddrNpi</code> values defined above.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppEsmeAddrTon</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for
AlertNotification</strong> Defines the type of number (TON) to be used in the
ESME originator address parameters. Use the <code>sourceAddrTon</code> URI
option values defined above.</p></td></tr><tr><td col
span="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppId</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>only for smsc DeliveryReceipt and
DataSm</strong> The message ID allocated to the message by the SMSC when
originally submitted.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppDelivered</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>Integer</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for smsc
DeliveryReceipt</strong> Number of short messages delivered. This is only
relevant where the original message was submitted to a distribution list.The
value is padded with leading zeros if necessary.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppDoneDate</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>Date</code></p></td>
<td colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for smsc
DeliveryReceipt</strong> The time and date at which the short message reached
it's final state. The format is as follows: YYMMDDhhmm.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppFinalStatus</code></p></td><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>DeliveryReceiptState</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for smsc
DeliveryReceipt:</strong> The final status of the message. The following values
are defined:<br clear="none" class="atl-forced-newline"> <code>DELIVRD</code>:
Message is delivered to destination<br clear="none" class="atl-forced-newline">
<code>EXPIRED</code>: Message validity period has expired.<br clear="none"
class="atl-forced-newline"> <code>DELETED</code>: Message has been deleted.<br
clear="none" class="atl-forced-newline"> <code>UNDELIV</code>: Message is
undeliverable<br clear="none" class="atl-fo
rced-newline"> <code>ACCEPTD</code>: Message is in accepted state (i.e. has
been manually read on behalf of the subscriber by customer service)<br
clear="none" class="atl-forced-newline"> <code>UNKNOWN</code>: Message is in
invalid state<br clear="none" class="atl-forced-newline"> <code>REJECTD</code>:
Message is in a rejected state</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppCommandStatus</code></p></td><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>only for DataSm</strong> The
Command status of the message.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppError</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>only for smsc
DeliveryReceipt</strong> Where appropriate this may hold a Network specific
error code or
an SMSC error code for the attempted delivery of the message. These errors
are Network or SMSC specific and are not included here.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppSubmitDate</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Date</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for smsc
DeliveryReceipt</strong> The time and date at which the short message was
submitted. In the case of a message which has been replaced, this is the date
that the original message was replaced. The format is as follows:
YYMMDDhhmm.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppSubmitted</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>Integer</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for smsc
DeliveryReceipt</strong> Number of short messages originally submitted. This is
only relevant when the origin
al message was submitted to a distribution list.The value is padded with
leading zeros if necessary.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppDestAddr</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>only for DeliverSm and
DataSm:</strong> Defines the destination SME address. For mobile terminated
messages, this is the directory number of the recipient
MS.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppScheduleDeliveryTime</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for
DeliverSm:</strong> This parameter specifies the scheduled time at which the
message delivery should be first attempted. It defines either the absolute date
and time or relative time from the current SMSC time at which d
elivery of this message will be attempted by the SMSC. It can be specified in
either absolute time format or relative time format. The encoding of a time
format is specified in Section 7.1.1. in the smpp specification
v3.4.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppValidityPeriod</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for
DeliverSm</strong> The validity period parameter indicates the SMSC expiration
time, after which the message should be discarded if not delivered to the
destination. It can be defined in absolute time format or relative time format.
The encoding of absolute and relative time format is specified in Section 7.1.1
in the smpp specification v3.4.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppServiceType</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><c
ode>String</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>only for DeliverSm and DataSm</strong> The
service type parameter indicates the SMS Application service associated with
the message.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppRegisteredDelivery</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for
DataSm</strong> Is used to request an delivery receipt and/or SME originated
acknowledgements. Same values as in Producer header list
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppDestAddrNpi</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for
DataSm</strong> Defines the numeric plan indicator (NPI) in the destination
address parameters. Use the URI option
<code>sourceAddrNpi</code> values defined above.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppDestAddrTon</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for
DataSm</strong> Defines the type of number (TON) in the destination address
parameters. Use the <code>sourceAddrTon</code> URI option values defined
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppMessageType</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.6
onwards</strong>: Identifies the type of an incoming message:<br clear="none"
class="atl-forced-newline"> <code>AlertNotification</code>: an SMSC alert
notification<br clear="none" class="atl-forced-newline"> <code>DataSm</code>:
an SMSC data short message<br clear="none"
class="atl-forced-newline"> <code>DeliveryReceipt</code>: an SMSC delivery
receipt<br clear="none" class="atl-forced-newline"> <code>DeliverSm</code>: an
SMSC deliver short message</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppOptionalParameters</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Map<String,
Object></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Deprecated and will be removed in Camel
2.13.0/3.0.0</strong><br clear="none" class="atl-forced-newline"> <strong>Camel
2.10.5 onwards and only for DeliverSm</strong> The optional parameters send
back by the SMSC.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppOptionalParameter</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Map<Short,
Object></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.10.7, 2.11.2 onwards and only for
Deliver
Sm</strong> The optional parameters send back by the SMSC. The key is the
<code>Short</code> code for the optional parameter. The value is converted in
the following way:<br clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.COctetString</code> ->
<code>String</code><br clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.OctetString</code> ->
<code>byte[]</code><br clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.Byte</code> -> <code>Byte</code><br
clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.Int</code> -> <code>Integer</code><br
clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.Short</code> -> <code>Short</code><br
clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.Null</code> ->
<code>null</code></p></td></tr></tbody></table></div></div><div
class="confluence-information-macro conflue
nce-information-macro-tip"><p class="title">JSMPP library</p><span
class="aui-icon aui-icon-small aui-iconfont-approve
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>See the documentation of the <a
shape="rect" class="external-link" href="http://jsmpp.org" rel="nofollow">JSMPP
Library</a> for more details about the underlying library.</p></div></div><h3
id="SMPP-Exceptionhandling">Exception handling</h3><p>This component supports
the general Camel exception handling capabilities</p><p>When an error occurs
sending a message with SubmitSm (the default action), the
org.apache.camel.component.smpp.SmppException is thrown with a nested
exception, org.jsmpp.extra.NegativeResponseException.  Call
NegativeResponseException.getCommandStatus() to obtain the exact SMPP negative
response code, the values are explained in the SMPP specification 3.4, section
5.1.3.<br clear="none"> <strong>Camel 2.8 onwards</strong>: When the SMPP
consumer receive
s a <code>DeliverSm</code> or <code>DataSm</code> short message and the
processing of these messages fails, you can also throw a
<code>ProcessRequestException</code> instead of handle the failure. In this
case, this exception is forwarded to the underlying <a shape="rect"
class="external-link" href="http://jsmpp.org" rel="nofollow">JSMPP library</a>
which will return the included error code to the SMSC. This feature is useful
to e.g. instruct the SMSC to resend the short message at a later time. This
could be done with the following lines of code:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="SMPP-ProducerMessageHeaders">Producer Message
Headers</h3><p>The following message headers can be used to affect the behavior
of the SMPP producer</p><div class="confluenceTableSmall"><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>CamelSmppDestAddr</code></p></td><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>List</code>/<code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm,
SubmitMulti, CancelSm and DataSm</strong> Defines the destination SME
address(es). For mobile terminated messages, this is the directory number of
the recipient MS. Is must be a <code>List<String></code> for SubmitMulti
and a <code>String</
code> otherwise.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppDestAddrTon</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm,
SubmitMulti, CancelSm and DataSm</strong> Defines the type of number (TON) to
be used in the SME destination address parameters. Use the
<code>sourceAddrTon</code> URI option values defined
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppDestAddrNpi</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm,
SubmitMulti, CancelSm and DataSm</strong> Defines the numeric plan indicator
(NPI) to be used in the SME destination address parameters. Use the URI option
<code>sourceAddrNpi</code> values defined above.</p></td></tr><tr><td
colspan="1" rowspan="
1" class="confluenceTd"><p><code>CamelSmppSourceAddr</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Defines the address of SME
(Short Message Entity) which originated this message.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppSourceAddrTon</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Defines the type of number
(TON) to be used in the SME originator address parameters. Use the
<code>sourceAddrTon</code> URI option values defined
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppSourceAddrNpi</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Defines the numeric plan
indicator (NPI) to be used in the SME originator ad
dress parameters. Use the URI option <code>sourceAddrNpi</code> values defined
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppServiceType</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The service type parameter can
be used to indicate the SMS Application service associated with the message.
Use the URI option <code>serviceType</code> settings
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppRegisteredDelivery</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm,
ReplaceSm, SubmitMulti and DataSm</strong> Is used to request an SMSC delivery
receipt and/or SME originated acknowledgements. Use the URI option
<code>registeredDelivery</code> settings above.</p></td></tr><tr><td colspan="1
" rowspan="1"
class="confluenceTd"><p><code>CamelSmppPriorityFlag</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm and
SubmitMulti</strong> Allows the originating SME to assign a priority level to
the short message. Use the URI option <code>priorityFlag</code> settings
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppScheduleDeliveryTime</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Date</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm,
SubmitMulti and ReplaceSm</strong> This parameter specifies the scheduled time
at which the message delivery should be first attempted. It defines either the
absolute date and time or relative time from the current SMSC time at which
delivery of this message will be attempted by the SMSC. It can be specified in
either a
bsolute time format or relative time format. The encoding of a time format is
specified in chapter 7.1.1. in the smpp specification
v3.4.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppValidityPeriod</code></p></td><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>String</code>/<code>Date</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for SubmitSm,
SubmitMulti and ReplaceSm</strong> The validity period parameter indicates the
SMSC expiration time, after which the message should be discarded if not
delivered to the destination. If it's provided as <code>Date</code>, it's
interpreted as absolute time. <strong>Camel 2.9.1 onwards:</strong> It can be
defined in absolute time format or relative time format if you provide it as
<code>String</code> as specified in chapter 7.1.1 in the smpp specification
v3.4.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppReplaceIfPresentFlag<
/code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>Byte</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>only for SubmitSm and SubmitMulti</strong> The
replace if present flag parameter is used to request the SMSC to replace a
previously submitted message, that is still pending delivery. The SMSC will
replace an existing message provided that the source address, destination
address and service type match the same fields in the new message. The
following values are defined: <br clear="none" class="atl-forced-newline">
<code>0</code>: Don't replace<br clear="none" class="atl-forced-newline">
<code>1</code>: Replace</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppAlphabet</code> /
<code>CamelSmppDataCoding</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>Byte</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.5</strong> <strong>For SubmitSm, Submit
Multi and ReplaceSm</strong> (Prior to <strong>Camel 2.9</strong> use
<code>CamelSmppDataCoding</code> instead of <code>CamelSmppAlphabet</code>.)
The data coding according to the SMPP 3.4 specification, section 5.2.19. Use
the URI option <code>alphabet</code> settings above.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppOptionalParameters</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Map<String,
String></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Deprecated and will be removed in Camel
2.13.0/3.0.0</strong><br clear="none" class="atl-forced-newline"> <strong>Camel
2.10.5 and 2.11.1 onwards and only for SubmitSm, SubmitMulti and
DataSm</strong> The optional parameters send back by the
SMSC.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppOptionalParameter</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Map<Short, Object
></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.10.7 and 2.11.2 onwards and only for
SubmitSm, SubmitMulti and DataSm</strong> The optional parameter which are send
to the SMSC. The value is converted in the following way:<br clear="none"
class="atl-forced-newline"> <code>String</code> ->
<code>org.jsmpp.bean.OptionalParameter.COctetString</code><br clear="none"
class="atl-forced-newline"> <code>byte[]</code> ->
<code>org.jsmpp.bean.OptionalParameter.OctetString</code><br clear="none"
class="atl-forced-newline"> <code>Byte</code> ->
<code>org.jsmpp.bean.OptionalParameter.Byte</code><br clear="none"
class="atl-forced-newline"> <code>Integer</code> ->
<code>org.jsmpp.bean.OptionalParameter.Int</code><br clear="none"
class="atl-forced-newline"> <code>Short</code> ->
<code>org.jsmpp.bean.OptionalParameter.Short</code><br clear="none"
class="atl-forced-newline"> <code>null</code> ->
<code>org.jsmpp.bean.OptionalParameter.Null</cod
e></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelSmppEncoding</td><td colspan="1" rowspan="1"
class="confluenceTd">String</td><td colspan="1" rowspan="1"
class="confluenceTd"><strong>Camel 2.14.1 and Camel 2.15.0 onwards and
</strong><strong>only for SubmitSm, SubmitMulti and DataSm</strong>. 
Specifies the encoding (character set name) of the bytes in the message
body.  If the message body is a string then this is not relevant because
Java Strings are always Unicode.  If the body is a byte array then this
header can be used to indicate that it is ISO-8859-1 or some other value. 
Default value is specified by the endpoint configuration parameter
<em>encoding</em></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd">CamelSmppSplittingPolicy</td><td colspan="1" rowspan="1"
class="confluenceTd">String</td><td colspan="1" rowspan="1"
class="confluenceTd"><strong>Camel 2.14.1 and Camel 2.15.0 onwards and
</strong><strong>only for Subm
itSm, SubmitMulti and DataSm</strong>.  Specifies the policy for message
splitting for this exchange.  Possible values are described in the
endpoint configuration parameter
<em>splittingPolicy</em></td></tr></tbody></table></div></div><p>The following
message headers are used by the SMPP producer to set the response from the SMSC
in the message header</p><div class="confluenceTableSmall"><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>CamelSmppId</code></p></td><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>List<String></code>/<code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The id to identify the
submitted short message(s) for later use. <st
rong>From Camel 2.9.0</strong>: In case of a ReplaceSm, QuerySm, CancelSm and
DataSm this header vaule is a <code>String</code>. In case of a SubmitSm or
SubmitMultiSm this header vaule is a
<code>List<String></code>.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppSentMessageCount</code></p></td><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>From Camel 2.9 onwards only for
SubmitSm and SubmitMultiSm</strong> The total number of messages which has been
sent.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppError</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>Map<String, List<Map<String,
Object>>></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>From Camel 2.9 onwards only for
SubmitMultiSm</strong> The errors which occurred by sending the short m
essage(s) the form <code>Map<String, List<Map<String,
Object>>></code> (messageID : (destAddr : address, error :
errorCode)).</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppOptionalParameters</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Map<String,
String></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Deprecated and will be removed in Camel
2.13.0/3.0.0</strong><br clear="none" class="atl-forced-newline"> <strong>From
Camel 2.11.1 onwards only for DataSm</strong> The optional parameters which are
returned from the SMSC by sending the message.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code>CamelSmppOptionalParameter</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Map<Short,
Object></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>From Camel 2.10.7, 2.11.2 onwards only for
DataSm</stro
ng> The optional parameter which are returned from the SMSC by sending the
message. The key is the <code>Short</code> code for the optional parameter. The
value is converted in the following way:<br clear="none"
class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.COctetString</code> ->
<code>String</code><br clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.OctetString</code> ->
<code>byte[]</code><br clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.Byte</code> -> <code>Byte</code><br
clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.Int</code> -> <code>Integer</code><br
clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.Short</code> -> <code>Short</code><br
clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.Null</code> ->
<code>null</code></p></td></tr></tbody></table></div></div><h3
id="SMPP-ConsumerMe
ssageHeaders">Consumer Message Headers</h3><p>The following message headers
are used by the SMPP consumer to set the request data from the SMSC in the
message header</p><div class="confluenceTableSmall"><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code>CamelSmppSequenceNumber</code></p></td><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>only for AlertNotification,
DeliverSm and DataSm</strong> A sequence number allows a response PDU to be
correlated with a request PDU. The associated SMPP response PDU must preserve
this field.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmp
pCommandId</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>only for AlertNotification,
DeliverSm and DataSm</strong> The command id field identifies the particular
SMPP PDU. For the complete list of defined values see chapter 5.1.2.1 in the
smpp specification v3.4.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppSourceAddr</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for
AlertNotification, DeliverSm and DataSm</strong> Defines the address of SME
(Short Message Entity) which originated this message.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppSourceAddrNpi</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluen
ceTd"><p><strong>only for AlertNotification and DataSm</strong> Defines the
numeric plan indicator (NPI) to be used in the SME originator address
parameters. Use the URI option <code>sourceAddrNpi</code> values defined
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppSourceAddrTon</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for
AlertNotification and DataSm</strong> Defines the type of number (TON) to be
used in the SME originator address parameters. Use the
<code>sourceAddrTon</code> URI option values defined
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppEsmeAddr</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>only for AlertNotification</strong>
Defines the destination ESME addres
s. For mobile terminated messages, this is the directory number of the
recipient MS.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppEsmeAddrNpi</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for
AlertNotification</strong> Defines the numeric plan indicator (NPI) to be used
in the ESME originator address parameters. Use the URI option
<code>sourceAddrNpi</code> values defined above.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppEsmeAddrTon</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for
AlertNotification</strong> Defines the type of number (TON) to be used in the
ESME originator address parameters. Use the <code>sourceAddrTon</code> URI
option values defined above.</p></td></tr><tr><td col
span="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppId</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>only for smsc DeliveryReceipt and
DataSm</strong> The message ID allocated to the message by the SMSC when
originally submitted.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppDelivered</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>Integer</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for smsc
DeliveryReceipt</strong> Number of short messages delivered. This is only
relevant where the original message was submitted to a distribution list.The
value is padded with leading zeros if necessary.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppDoneDate</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>Date</code></p></td>
<td colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for smsc
DeliveryReceipt</strong> The time and date at which the short message reached
it's final state. The format is as follows: YYMMDDhhmm.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppStatus</code></p></td><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code>DeliveryReceiptState</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for smsc
DeliveryReceipt:</strong> The final status of the message. The following values
are defined:<br clear="none" class="atl-forced-newline"> <code>DELIVRD</code>:
Message is delivered to destination<br clear="none" class="atl-forced-newline">
<code>EXPIRED</code>: Message validity period has expired.<br clear="none"
class="atl-forced-newline"> <code>DELETED</code>: Message has been deleted.<br
clear="none" class="atl-forced-newline"> <code>UNDELIV</code>: Message is
undeliverable<br clear="none" class="atl-forced-
newline"> <code>ACCEPTD</code>: Message is in accepted state (i.e. has been
manually read on behalf of the subscriber by customer service)<br clear="none"
class="atl-forced-newline"> <code>UNKNOWN</code>: Message is in invalid
state<br clear="none" class="atl-forced-newline"> <code>REJECTD</code>: Message
is in a rejected state</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppCommandStatus</code></p></td><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>only for DataSm</strong> The
Command status of the message.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppError</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>only for smsc
DeliveryReceipt</strong> Where appropriate this may hold a Network specific
error code or an S
MSC error code for the attempted delivery of the message. These errors are
Network or SMSC specific and are not included here.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppSubmitDate</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Date</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for smsc
DeliveryReceipt</strong> The time and date at which the short message was
submitted. In the case of a message which has been replaced, this is the date
that the original message was replaced. The format is as follows:
YYMMDDhhmm.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppSubmitted</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>Integer</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for smsc
DeliveryReceipt</strong> Number of short messages originally submitted. This is
only relevant when the original me
ssage was submitted to a distribution list.The value is padded with leading
zeros if necessary.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppDestAddr</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><strong>only for DeliverSm and
DataSm:</strong> Defines the destination SME address. For mobile terminated
messages, this is the directory number of the recipient
MS.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppScheduleDeliveryTime</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for
DeliverSm:</strong> This parameter specifies the scheduled time at which the
message delivery should be first attempted. It defines either the absolute date
and time or relative time from the current SMSC time at which delive
ry of this message will be attempted by the SMSC. It can be specified in
either absolute time format or relative time format. The encoding of a time
format is specified in Section 7.1.1. in the smpp specification
v3.4.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppValidityPeriod</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for
DeliverSm</strong> The validity period parameter indicates the SMSC expiration
time, after which the message should be discarded if not delivered to the
destination. It can be defined in absolute time format or relative time format.
The encoding of absolute and relative time format is specified in Section 7.1.1
in the smpp specification v3.4.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppServiceType</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>S
tring</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>only for DeliverSm and DataSm</strong> The
service type parameter indicates the SMS Application service associated with
the message.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppRegisteredDelivery</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for
DataSm</strong> Is used to request an delivery receipt and/or SME originated
acknowledgements. Same values as in Producer header list
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppDestAddrNpi</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for
DataSm</strong> Defines the numeric plan indicator (NPI) in the destination
address parameters. Use the URI option <cod
e>sourceAddrNpi</code> values defined above.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code>CamelSmppDestAddrTon</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Byte</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>only for
DataSm</strong> Defines the type of number (TON) in the destination address
parameters. Use the <code>sourceAddrTon</code> URI option values defined
above.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppMessageType</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.6
onwards</strong>: Identifies the type of an incoming message:<br clear="none"
class="atl-forced-newline"> <code>AlertNotification</code>: an SMSC alert
notification<br clear="none" class="atl-forced-newline"> <code>DataSm</code>:
an SMSC data short message<br clear="none" clas
s="atl-forced-newline"> <code>DeliveryReceipt</code>: an SMSC delivery
receipt<br clear="none" class="atl-forced-newline"> <code>DeliverSm</code>: an
SMSC deliver short message</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppOptionalParameters</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Map<String,
Object></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Deprecated and will be removed in Camel
2.13.0/3.0.0</strong><br clear="none" class="atl-forced-newline"> <strong>Camel
2.10.5 onwards and only for DeliverSm</strong> The optional parameters send
back by the SMSC.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSmppOptionalParameter</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>Map<Short,
Object></code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.10.7, 2.11.2 onwards and only for
DeliverSm</s
trong> The optional parameters send back by the SMSC. The key is the
<code>Short</code> code for the optional parameter. The value is converted in
the following way:<br clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.COctetString</code> ->
<code>String</code><br clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.OctetString</code> ->
<code>byte[]</code><br clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.Byte</code> -> <code>Byte</code><br
clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.Int</code> -> <code>Integer</code><br
clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.Short</code> -> <code>Short</code><br
clear="none" class="atl-forced-newline">
<code>org.jsmpp.bean.OptionalParameter.Null</code> ->
<code>null</code></p></td></tr></tbody></table></div></div><div
class="confluence-information-macro confluence-i
nformation-macro-tip"><p class="title">JSMPP library</p><span class="aui-icon
aui-icon-small aui-iconfont-approve
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>See the documentation of the <a
shape="rect" class="external-link" href="http://jsmpp.org" rel="nofollow">JSMPP
Library</a> for more details about the underlying library.</p></div></div><h3
id="SMPP-Exceptionhandling">Exception handling</h3><p>This component supports
the general Camel exception handling capabilities</p><p>When an error occurs
sending a message with SubmitSm (the default action), the
org.apache.camel.component.smpp.SmppException is thrown with a nested
exception, org.jsmpp.extra.NegativeResponseException.  Call
NegativeResponseException.getCommandStatus() to obtain the exact SMPP negative
response code, the values are explained in the SMPP specification 3.4, section
5.1.3.<br clear="none"> <strong>Camel 2.8 onwards</strong>: When the SMPP
consumer receives a <
code>DeliverSm</code> or <code>DataSm</code> short message and the processing
of these messages fails, you can also throw a
<code>ProcessRequestException</code> instead of handle the failure. In this
case, this exception is forwarded to the underlying <a shape="rect"
class="external-link" href="http://jsmpp.org" rel="nofollow">JSMPP library</a>
which will return the included error code to the SMSC. This feature is useful
to e.g. instruct the SMSC to resend the short message at a later time. This
could be done with the following lines of code:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
<script class="brush: java; gutter: false; theme: Default"
type="syntaxhighlighter"><![CDATA[from("smpp://smppclient@localhost:2775?password=password&enquireLinkTimer=3000&transactionTimer=5000&systemType=consumer")
.doTry()
.to("bean:dao?method=updateSmsState")