Author: buildbot
Date: Thu Mar 10 07:20:48 2016
New Revision: 982371
Log:
Production update by buildbot for camel
Modified:
websites/production/camel/content/book-component-appendix.html
websites/production/camel/content/book-in-one-page.html
websites/production/camel/content/cache/main.pageCache
websites/production/camel/content/camel-2170-release.html
websites/production/camel/content/smpp.html
Modified: websites/production/camel/content/book-component-appendix.html
==============================================================================
--- websites/production/camel/content/book-component-appendix.html (original)
+++ websites/production/camel/content/book-component-appendix.html Thu Mar 10
07:20:48 2016
@@ -1016,11 +1016,11 @@ template.send("direct:alias-verify&
]]></script>
</div></div><p></p><h3 id="BookComponentAppendix-SeeAlso.8">See Also</h3>
<ul><li><a shape="rect" href="configuring-camel.html">Configuring
Camel</a></li><li><a shape="rect"
href="component.html">Component</a></li><li><a shape="rect"
href="endpoint.html">Endpoint</a></li><li><a shape="rect"
href="getting-started.html">Getting Started</a></li></ul><ul><li><a
shape="rect" href="crypto.html">Crypto</a> Crypto is also available as a <a
shape="rect" href="data-format.html">Data Format</a></li></ul> <h2
id="BookComponentAppendix-CXFComponent">CXF Component</h2><div
class="confluence-information-macro confluence-information-macro-note"><span
class="aui-icon aui-icon-small aui-iconfont-warning
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>When using CXF as a consumer, the
<a shape="rect" href="cxf-bean-component.html">CXF Bean Component</a> allows
you to factor out how message payloads are received from their processing as a
RESTful or SOAP web service. This has the potential of using a multitude of
transports to cons
ume web services. The bean component's configuration is also simpler and
provides the fastest method to implement web services using Camel and
CXF.</p></div></div><div class="confluence-information-macro
confluence-information-macro-tip"><span class="aui-icon aui-icon-small
aui-iconfont-approve confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>When using CXF in streaming modes
(see DataFormat option), then also read about <a shape="rect"
href="stream-caching.html">Stream caching</a>.</p></div></div><p>The
<strong>cxf:</strong> component provides integration with <a shape="rect"
href="http://cxf.apache.org">Apache CXF</a> for connecting to JAX-WS services
hosted in CXF.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1457536695850 {padding: 0px;}
-div.rbtoc1457536695850 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1457536695850 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1457594333775 {padding: 0px;}
+div.rbtoc1457594333775 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1457594333775 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1457536695850">
+/*]]>*/</style></p><div class="toc-macro rbtoc1457594333775">
<ul class="toc-indentation"><li><a shape="rect"
href="#BookComponentAppendix-CXFComponent">CXF Component</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#BookComponentAppendix-URIformat">URI format</a></li><li><a shape="rect"
href="#BookComponentAppendix-Options">Options</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#BookComponentAppendix-Thedescriptionsofthedataformats">The descriptions
of the dataformats</a>
@@ -9506,7 +9506,7 @@ protected RouteBuilder createRouteBuilde
<p><strong>The Camel SIP component also ships with a Presence Agent that is
meant to be used for Testing and Demo purposes only.</strong> An example of
instantiating a Presence Agent is given above. </p>
-<p>Note that the Presence Agent is set up as a user agent@localhost:5152 and
is capable of communicating with both Publisher as well as Subscriber. It has a
separate SIP stackName distinct from Publisher as well as Subscriber. While it
is set up as a Camel Consumer, it does not actually send any messages along the
route to the endpoint "mock:neverland".</p> <h2
id="BookComponentAppendix-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" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+<p>Note that the Presence Agent is set up as a user agent@localhost:5152 and
is capable of communicating with both Publisher as well as Subscriber. It has a
separate SIP stackName distinct from Publisher as well as Subscriber. While it
is set up as a Camel Consumer, it does not actually send any messages along the
route to the endpoint "mock:neverland".</p> <h2
id="BookComponentAppendix-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 class="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>
@@ -9524,7 +9524,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="BookComponentAppendix-URIOptions.9">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 c
olspan="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" cl
ass="atl-forced-newline"> <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[]</c
ode> 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 communic
ation 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" class="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 deliver
y 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 th
e SME originator address 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>sourceAd
drTon</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 suppo
rted:<br clear="none" 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>: D
on'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>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="confluenceTd"><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="confluenceTd"><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 cols
pan="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></table></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="BookComponentAppendix-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 cols
pan="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 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>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 spec
ified in either absolute 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>CamelSmppRepl
aceIfPresentFlag</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, SubmitMulti 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.OptionalPa
rameter.Null</code></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><str
ong>only for SubmitSm, 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) f
or later use. <strong>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 se
nding the short message(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</strong> 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
="BookComponentAppendix-ConsumerMessageHeaders">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" clas
s="confluenceTd"><p><code>CamelSmppCommandId</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
colsp
an="1" rowspan="1" class="confluenceTd"><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>
D
efines the destination ESME 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>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 defin
ed above.</p></td></tr><tr><td colspan="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="confluenc
eTd"><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
undeliver
able<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 hol
d 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. Thi
s is only relevant when 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>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 fro
m the current SMSC time at which delivery 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" rows
pan="1" class="confluenceTd"><p><code>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 addr
ess 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 DeliverSm</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="co
nfluence-information-macro confluence-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="BookComponentAppendix-Exceptionhandling.1">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">
+</div></div><h3 id="BookComponentAppendix-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 cols
pan="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 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>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 spec
ified in either absolute 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>CamelSmppRepl
aceIfPresentFlag</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, SubmitMulti 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.OptionalPa
rameter.Null</code></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><str
ong>only for SubmitSm, 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) f
or later use. <strong>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 se
nding the short message(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</strong> 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
="BookComponentAppendix-ConsumerMessageHeaders">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" clas
s="confluenceTd"><p><code>CamelSmppCommandId</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
colsp
an="1" rowspan="1" class="confluenceTd"><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>
D
efines the destination ESME 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>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 defin
ed above.</p></td></tr><tr><td colspan="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="confluenc
eTd"><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 N
etwork 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 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>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 delivery 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>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 p
arameters. 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 DeliverSm</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="conflue
nce-information-macro confluence-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="BookComponentAppendix-Exceptionhandling.1">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")