servicemix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache ServiceMix > servicemix-smpp
Date Fri, 10 Sep 2010 15:39:01 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/1810/9/13/_/styles/combined.css?spaceKey=SM&amp;forWysiwyg=true" type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://cwiki.apache.org/confluence/display/SM/servicemix-smpp">servicemix-smpp</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~iocanel">Ioannis Canellos</a>
    </h4>
        <div id="versionComment">
        <b>Comment:</b>
        Added a paragraph for optional parameters that will be available as of 2010.02. Also added some clarifications on the current endpoint behaviour.<br />
    </div>
        <br/>
                         <h4>Changes (9)</h4>
                                 
    
<div id="page-diffs">
            <table class="diff" cellpadding="0" cellspacing="0">
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >  &lt;artifactId&gt;your.artifact.id&lt;/artifactId&gt; <br>  &lt;version&gt;your-version&lt;/version&gt; <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">&lt;/dependency&gt; <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">&lt;/dependency&gt;(servicemix-smmp 2010.02 or newer)  <br></td></tr>
            <tr><td class="diff-unchanged" >{code} <br>{info} <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" > <br>h3. Consumer Endpoint <br></td></tr>
            <tr><td class="diff-unchanged" >A SMPP Consumer endpoint connects to a SMPP server, waiting for incoming SMS message. When a SMS message comes, the endpoint converts it into a JBI message (using the marshaler) and send to the NMR. <br> <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">Currently, the SMPP Consumer endpoint only supports the DELIVERY_SM protocol data unit, which will acknowledge positive even if the exchange fails.   <br> <br></td></tr>
            <tr><td class="diff-unchanged" >{code:lang=xml|title=Consumer Endpoint} <br>&lt;smpp:consumer service=&quot;test:service&quot; <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" > <br>{info:title=Consumer Endpoint Attributes|borderStyle=solidbgColor=&#39;lightblue&#39;} <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">|| Name                     || Type                        || Description                               || Default                    || <br>| service                   | QName                        | the service name of the endpoint           | require to be spec&#39;d        | <br>| endpoint                  | string                       | the endpoint name of the endpoint          | require to be spec&#39;d        | <br>| targetService             | QName                        | the service name of the target endpoint    |                             | <br>| targetEndpoint            | string                       | the endpoint name of the target endpoint   |                             | <br>| host                      | string                       | the SMPP server hostname/IP                | require to be spec&#39;d        | <br>| port                      | int                          | the SMPP server port number                | 2700                        | <br>| systemId                  | string                       | the SMPP user system ID                    | require to be spec&#39;d        | <br>| password                  | string                       | the SMPP user password                     | require to be spec&#39;d        | <br>| marshaler                 | class                        | org.apache.servicemix.smpp.marshaler.SmppMarshalerSupport | DefaultSmppMarshaler | <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">|| Name || Type || Description || Default || <br>| service | QName | the service name of the endpoint | require to be spec&#39;d | <br>| endpoint | string | the endpoint name of the endpoint | require to be spec&#39;d | <br>| targetService | QName | the service name of the target endpoint | | <br>| targetEndpoint | string | the endpoint name of the target endpoint | | <br>| host | string | the SMPP server hostname/IP | require to be spec&#39;d | <br>| port | int | the SMPP server port number | 2700 | <br>| systemId | string | the SMPP user system ID | require to be spec&#39;d | <br>| password | string | the SMPP user password | require to be spec&#39;d | <br>| marshaler | class | org.apache.servicemix.smpp.marshaler.SmppMarshalerSupport | DefaultSmppMarshaler | <br></td></tr>
            <tr><td class="diff-unchanged" >{info} <br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >A SMPP Provider endpoint expects messages coming from the NMR, converts it into a SMS message (using the marshaler) and send to the SMPP server. <br> <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">Currently, the SMPP Provider endpoint only supports the SUBMIT_SM protocol data unit. Positive or negative acknowledgements received from the SMSC will set the Exchange status to DONE or ERROR. For InOut Exchanges the OUT NormalizedMessage is a copy of IN message. <br> <br></td></tr>
            <tr><td class="diff-unchanged" >{code:lang=xml|title=Provider Endpoint} <br>&lt;smpp:provider service=&quot;test:service&quot; <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" > <br>{info:title=Provider Endpoint Attributes|borderStyle=solidbgColor=&#39;lightblue&#39;} <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">|| Name                     || Type                        || Description                               || Default                    || <br>| service                   | QName                        | the service name of the endpoint           | require to be spec&#39;d        | <br>| endpoint                  | string                       | the endpoint name of the endpoint          | require to be spec&#39;d        | <br>| targetService             | QName                        | the service name of the target endpoint    |                             | <br>| targetEndpoint            | string                       | the endpoint name of the target endpoint   |                             | <br>| host                      | string                       | the SMPP server hostname/IP                | require to be spec&#39;d        | <br>| port                      | int                          | the SMPP server port number                | 2700                        | <br>| systemId                  | string                       | the SMPP user system ID                    | require to be spec&#39;d        | <br>| password                  | string                       | the SMPP user password                     | require to be spec&#39;d        | <br>| marshaler                 | class                        | org.apache.servicemix.smpp.marshaler.SmppMarshalerSupport | DefaultSmppMarshaler | <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">|| Name || Type || Description || Default || <br>| service | QName | the service name of the endpoint | require to be spec&#39;d | <br>| endpoint | string | the endpoint name of the endpoint | require to be spec&#39;d | <br>| targetService | QName | the service name of the target endpoint | | <br>| targetEndpoint | string | the endpoint name of the target endpoint | | <br>| host | string | the SMPP server hostname/IP | require to be spec&#39;d | <br>| port | int | the SMPP server port number | 2700 | <br>| systemId | string | the SMPP user system ID | require to be spec&#39;d | <br>| password | string | the SMPP user password | require to be spec&#39;d | <br>| marshaler | class | org.apache.servicemix.smpp.marshaler.SmppMarshalerSupport | DefaultSmppMarshaler | <br></td></tr>
            <tr><td class="diff-unchanged" >{info} <br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >    &lt;property name=&quot;marshaler&quot;&gt; <br>       &lt;bean class=&quot;org.apache.servicemix.smpp.marshaler.OtherSmppMarshaler&quot;/&gt; <br></td></tr>
            <tr><td class="diff-unchanged" >    &lt;/property&gt; <br></td></tr>
            <tr><td class="diff-unchanged" >  &lt;/smpp:consumer&gt; <br> <br>&lt;/beans&gt; <br>{code} <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;"> <br>h3. Optional Parameters (for servicemix-smpp 2010.02 or newer) <br> <br>SMPP provides a set of Optional parameters that can be set on the supported protocol data units. The default SMPP marshaler will treat the optional parameters as Normalized message properties (will copy matching properties from the NormalizedMessage to the PDU and vice versa). Below is a small matrix the presentes the supported optional parameters and how they are mapped to NomralizedMessage properties. <br> <br>{info:title=Optional Parameter Support |borderStyle=solidbgColor=&#39;lightblue&#39;} <br>|| Name                     || Type                        | Supported by PDUs | Description                               | <br>| DEST_ADDR_SUBUNIT         | Byte                         | SUBMIT_SM, DATA_SM | The subcomponent in the destination device for which the user data is intended.| <br>| DEST_NETWORK_TYPE         | Byte                         | DATA_SM  | The correct network for the destination device.| <br>| DEST_BEARER_TYPE          | Byte                         | DATA_SM  | The correct bearer type for the delivering the user data to the destination.| <br>| DEST_TELEMATICS_ID        | Short                        | DATA_SM  | The telematics identifier associated with the destination.| <br>| SOURCE_ADDR_SUBUNIT       | Byte                         | SUBMIT_SM, DATA_SM |The subcomponent in the destination device which created the user data. | <br>| SOURCE_NETWORK_TYPE       | Byte                         | DATA_SM  | The correct network associated with the originating device.| <br>| SOURCE_BEARER_TYPE        | Byte                         | DATA_SM  | The correct bearer type for the delivering the user data to the destination.| <br>| SOURCE_TELEMATICS_ID      | Byte                         | DATA_SM  | The telematics identifies associated with the source.| <br>| QOS_TIME_TO_LIVE          | Integer                      | DATA_SM  | Time to live as a relative time in seconds from submission.| <br>| PAYLOAD_TYPE              | Byte                         | SUBMIT_SM, DELIVERY_SM, DATA_SM | Defines the type of payload (e.g. WDP, WCMP, etc.).| <br>| ADDITIONAL_STATUS_INFO_TEXT| String                      | DATA_SM_RESP | ASCII text giving a description of the meaning of he response | <br>| RECEIPTED_MESSAGE_ID      | String                       | DELIVERY_SM | SMSC message ID of receipted message Should be present for SMSC Delivery Receipts and Intermediate Notifications.| <br>| MS_MSG_WAIT_FACILITIES    | Byte                         | SUBMIT_SM | This parameter controls the indication and specifies the message type (of the message associated with the MWI) at the mobile station.| <br>| PRIVACY_INDICATOR         | Byte                         | SUBMIT_SM, DELIVERY_SM, DATA_SM | Indicates the level of privacy associated with the message.| <br>| SOURCE_SUBADDRESS         | String                       | SUBMIT_SM, DELIVERY_SM, DATA_SM | The subaddress of tmessage originator. |  <br>| DEST_SUBADDRESS           | String                       | SUBMIT_SM, DELIVERY_SM, DATA_SM | The subaddress of tmessage destination. |  <br>| USER_MESSAGE_REFERENCE    | Short                        | SUBMIT_SM, DELIVERY_SM, DATA_SM | ESME asginged message reference number. |  <br>| USER_RESPONSE_CODE        | Byte                         | SUBMIT_SM , DATA_SM | A user response code. |  <br>| SOURCE_PORT               | Short                        | SUBMIT_SM, DELIVERY_SM, DATA_SM | Indicates the application port number associated with the source address of the message. This parameter should be present for WAP applications.|   <br>| DESTINATION_PORT          | Short                        | SUBMIT_SM, DELIVERY_SM, DATA_SM | Indicates the application port number associated with the destination address of the message. This parameter should be present for WAP applications.|   <br>| LANGUAGE_INDICATOR        | Byte                         | SUBMIT_SM, DELIVERY_SM, DATA_SM  | Indicates the language of an alphanumeric text message.| <br>| SAR_MSG_REF_NUM           | Byte			   | SUBMIT_SM, DATA_SM | The reference number for a particular concatenated short message.| <br>| SAR_TOTAL_SEGMENTS        | Byte                         | SUBMIT_SM, DATA_SM | Indicates the total number of short messages within the concatenated short message. | <br>| SAR_SEGMENT_SEQNUM        | Byte                         | SUBMIT_SM, DATA_SM | Indicates the sequence number of a particular short message fragment within the concatenated short message.| <br>| SC_INTERFACE_VERSION      | Byte                         | BIND (not applicable) | Smmp version supported by the SMSC (not applicable) |  <br>| CALLBACK_NUM_PRES_IND     | String                       | SUBMIT_SM, DATA_SM  | Defines the callback number presentation and screening.| <br>| CALLBACK_NUM_ATAG         | String                       | SUBMIT_SM, DATA_SM  | Associates a displayable alphanumeric tag with the callback number.|  <br>| NUMBER_OF_MESSAGES        | Byte                         | SUBMIT_SM, DATA_SM | Indicates the number of messages stored in a mail box. |  <br>| CALLBACK_NUM              | String                       | SUBMIT_SM, DELIVERY_SM, DATA_SM  | A callback number associated with the short message. Smpp supports multiple occurances of this parameter per message, but servicemix-smmp only supports once per message. |  <br>| DPF_RESULT                | String                       | DATA_SM_RESP | Indicates whether the Delivery Pending Flag was set.|  <br>| SET_DPF                   | String                       | DATA_SM | Indicator for setting Delivery Pending Flag on delivery failure.|  <br>| MS_AVAILABILITY_STATUS    | Byte                         | QUERY_SM | The status of the mobile station. |  <br>| NETWORK_ERROR_CODE        | String                       | DELIVERY_SM, DATA_SM | Network Error Code. May be present for Intermediate Notifications and SMSC Delivery Receipts. |  <br>| MESSAGE_PAYLOAD           | String                       | SUBMIT_SM, DELIVERY_SM, DATA_SM | Contains the extended short message user data. Up to 64K octets can be transmitted. |  <br>| DELIVERY_FAILURE_REASON   | Byte                         | DATA_SM_RESP | Include to indicate reason for delivery failure.| <br>| MORE_MESSAGES_TO_SEND     | Byte                         | SUBMIT_SM, DATA_SM | Indicates that there are more messages to follow for the destination SME.|  <br>| MESSAGE_STATE             | Byte                         | DELIVERY_SM | Message State. Should be present for SMSC Delivery Receipts and ntermediate Notifications.|  <br>| USSD_SERVICE_OP           | Byte                         | SUBMIT_SM | This parameter is used to identify the required USSD Service type when interfacing to a USSD system.| <br>| DISPLAY_TIME              | Byte                         | SUBMIT_SM, DATA_SM | Provides the receiving MS with a display time associated with the message.| <br>| SMS_SIGNAL                | Byte                         | SUBMIT_SM, DATA_SM  | Indicates the alerting mechanism when the message is received by an MS.| <br>| MS_VALIDITY               | Byte                         | SUBMIT_SM | Indicates validity information for this message to the recipient MS.| <br>| ALERT_ON_MESSAGE_DELIVERY | Null                         | SUBMIT_SM, DATA_SM | Request an MS alert signal be invoked on message delivery.|  <br>| ITS_REPLY_TYPE            | Byte                         | SUBMIT_SM, DELIVERY_SM, DATA_SM  | The MS user’s reply method to an SMS delivery message received from the network is indicated and controlled by this parameter.|  <br>| ITS_SESSION_INFO          | Byte                         | SUBMIT_SM, DELIVERY_SM, DATA_SM  | Session control information for Interactive Teleservice. |  <br>{info} <br> <br>+Note:+ DATA_SM, QUERY_SM and and response PDUs are not currently supported. <br></td></tr>
        </table>
</div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h1><a name="servicemix-smpp-ServiceMixSMPP"></a>ServiceMix SMPP</h1>

<p>The ServiceMix SMPP component provides support for receiving and sending SMS using the <a href="http://en.wikipedia.org/wiki/SMPP" class="external-link" rel="nofollow">SMPP protocol</a> via the enterprise service bus. It uses the <a href="http://code.google.com/p/jsmpp" class="external-link" rel="nofollow">jSMPP</a> library.</p>

<h2><a name="servicemix-smpp-MavenArchetype"></a>Maven Archetype</h2>

<p>You can use Maven servicemix-smpp-service-unit archetype to create a SMPP service unit:</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
mvn archetype:create \
  -DarchetypeGroupId=org.apache.servicemix.tooling \
  -DarchetypeArtifactId=servicemix-smpp-service-unit \
  -DarchetypeVersion=2010.01 \
  -DgroupId=your.group.id \
  -DartifactId=your.artifact.id \
  -Dversion=your-version
</pre>
</div></div>

<p>Once you've customized the service unit, simply install the SU:</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
mvn install
</pre>
</div></div>

<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/confluence/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>Remember that to be deployable in ServiceMix, the ServiceUnit has to be embedded in a Service Assembly: only the Service Assembly zip file can be deployed in ServiceMix.<br/>
To add your SU in a SA, you need to define it in the dependency sets:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
&lt;dependency&gt;
  &lt;groupId&gt;your.group.id&lt;/groupId&gt;
  &lt;artifactId&gt;your.artifact.id&lt;/artifactId&gt;
  &lt;version&gt;your-version&lt;/version&gt;
&lt;/dependency&gt;(servicemix-smmp 2010.02 or newer) 
</pre>
</div></div></td></tr></table></div>

<h2><a name="servicemix-smpp-EndpointsConfiguration"></a>Endpoints Configuration</h2>

<h3><a name="servicemix-smpp-ConsumerEndpoint"></a>Consumer Endpoint</h3>
<p>A SMPP Consumer endpoint connects to a SMPP server, waiting for incoming SMS message. When a SMS message comes, the endpoint converts it into a JBI message (using the marshaler) and send to the NMR.</p>

<p>Currently, the SMPP Consumer endpoint only supports the DELIVERY_SM protocol data unit, which will acknowledge positive even if the exchange fails.  </p>

<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Consumer Endpoint</b></div><div class="codeContent panelContent">
<pre class="code-xml">
&lt;smpp:consumer service=<span class="code-quote">"test:service"</span>
               endpoint=<span class="code-quote">"endpoint"</span>
               host=<span class="code-quote">"smpp.example.com"</span>
               port=<span class="code-quote">"2700"</span>
               systemId=<span class="code-quote">"user"</span>
               password=<span class="code-quote">"passwd"</span>/&gt;
</pre>
</div></div>


<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/confluence/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Consumer Endpoint Attributes</b><br /><div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Name </th>
<th class='confluenceTh'> Type </th>
<th class='confluenceTh'> Description </th>
<th class='confluenceTh'> Default </th>
</tr>
<tr>
<td class='confluenceTd'> service </td>
<td class='confluenceTd'> QName </td>
<td class='confluenceTd'> the service name of the endpoint </td>
<td class='confluenceTd'> require to be spec'd </td>
</tr>
<tr>
<td class='confluenceTd'> endpoint </td>
<td class='confluenceTd'> string </td>
<td class='confluenceTd'> the endpoint name of the endpoint </td>
<td class='confluenceTd'> require to be spec'd </td>
</tr>
<tr>
<td class='confluenceTd'> targetService </td>
<td class='confluenceTd'> QName </td>
<td class='confluenceTd'> the service name of the target endpoint </td>
<td class='confluenceTd'>&nbsp;</td>
</tr>
<tr>
<td class='confluenceTd'> targetEndpoint </td>
<td class='confluenceTd'> string </td>
<td class='confluenceTd'> the endpoint name of the target endpoint </td>
<td class='confluenceTd'>&nbsp;</td>
</tr>
<tr>
<td class='confluenceTd'> host </td>
<td class='confluenceTd'> string </td>
<td class='confluenceTd'> the SMPP server hostname/IP </td>
<td class='confluenceTd'> require to be spec'd </td>
</tr>
<tr>
<td class='confluenceTd'> port </td>
<td class='confluenceTd'> int </td>
<td class='confluenceTd'> the SMPP server port number </td>
<td class='confluenceTd'> 2700 </td>
</tr>
<tr>
<td class='confluenceTd'> systemId </td>
<td class='confluenceTd'> string </td>
<td class='confluenceTd'> the SMPP user system ID </td>
<td class='confluenceTd'> require to be spec'd </td>
</tr>
<tr>
<td class='confluenceTd'> password </td>
<td class='confluenceTd'> string </td>
<td class='confluenceTd'> the SMPP user password </td>
<td class='confluenceTd'> require to be spec'd </td>
</tr>
<tr>
<td class='confluenceTd'> marshaler </td>
<td class='confluenceTd'> class </td>
<td class='confluenceTd'> org.apache.servicemix.smpp.marshaler.SmppMarshalerSupport </td>
<td class='confluenceTd'> DefaultSmppMarshaler </td>
</tr>
</tbody></table>
</div>
</td></tr></table></div>

<h3><a name="servicemix-smpp-ProviderEndpoint"></a>Provider Endpoint</h3>

<p>A SMPP Provider endpoint expects messages coming from the NMR, converts it into a SMS message (using the marshaler) and send to the SMPP server.</p>

<p>Currently, the SMPP Provider endpoint only supports the SUBMIT_SM protocol data unit. Positive or negative acknowledgements received from the SMSC will set the Exchange status to DONE or ERROR. For InOut Exchanges the OUT NormalizedMessage is a copy of IN message.</p>

<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Provider Endpoint</b></div><div class="codeContent panelContent">
<pre class="code-xml">
&lt;smpp:provider service=<span class="code-quote">"test:service"</span>
               endpoint=<span class="code-quote">"endpoint"</span>
               host=<span class="code-quote">"smpp.example.com"</span>
               port=<span class="code-quote">"2700"</span>
               systemId=<span class="code-quote">"user"</span>
               password=<span class="code-quote">"passwd"</span>/&gt;
</pre>
</div></div>

<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/confluence/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Provider Endpoint Attributes</b><br /><div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Name </th>
<th class='confluenceTh'> Type </th>
<th class='confluenceTh'> Description </th>
<th class='confluenceTh'> Default </th>
</tr>
<tr>
<td class='confluenceTd'> service </td>
<td class='confluenceTd'> QName </td>
<td class='confluenceTd'> the service name of the endpoint </td>
<td class='confluenceTd'> require to be spec'd </td>
</tr>
<tr>
<td class='confluenceTd'> endpoint </td>
<td class='confluenceTd'> string </td>
<td class='confluenceTd'> the endpoint name of the endpoint </td>
<td class='confluenceTd'> require to be spec'd </td>
</tr>
<tr>
<td class='confluenceTd'> targetService </td>
<td class='confluenceTd'> QName </td>
<td class='confluenceTd'> the service name of the target endpoint </td>
<td class='confluenceTd'>&nbsp;</td>
</tr>
<tr>
<td class='confluenceTd'> targetEndpoint </td>
<td class='confluenceTd'> string </td>
<td class='confluenceTd'> the endpoint name of the target endpoint </td>
<td class='confluenceTd'>&nbsp;</td>
</tr>
<tr>
<td class='confluenceTd'> host </td>
<td class='confluenceTd'> string </td>
<td class='confluenceTd'> the SMPP server hostname/IP </td>
<td class='confluenceTd'> require to be spec'd </td>
</tr>
<tr>
<td class='confluenceTd'> port </td>
<td class='confluenceTd'> int </td>
<td class='confluenceTd'> the SMPP server port number </td>
<td class='confluenceTd'> 2700 </td>
</tr>
<tr>
<td class='confluenceTd'> systemId </td>
<td class='confluenceTd'> string </td>
<td class='confluenceTd'> the SMPP user system ID </td>
<td class='confluenceTd'> require to be spec'd </td>
</tr>
<tr>
<td class='confluenceTd'> password </td>
<td class='confluenceTd'> string </td>
<td class='confluenceTd'> the SMPP user password </td>
<td class='confluenceTd'> require to be spec'd </td>
</tr>
<tr>
<td class='confluenceTd'> marshaler </td>
<td class='confluenceTd'> class </td>
<td class='confluenceTd'> org.apache.servicemix.smpp.marshaler.SmppMarshalerSupport </td>
<td class='confluenceTd'> DefaultSmppMarshaler </td>
</tr>
</tbody></table>
</div>
</td></tr></table></div>

<h2><a name="servicemix-smpp-Marshalers"></a>Marshalers</h2>

<p>By default, SMPP endpoints expect (and generate) the content of the message in XML format. The XML message looks like:</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
<span class="code-tag">&lt;message&gt;</span>
  <span class="code-tag">&lt;source&gt;</span>SOURCE_PHONE_NUMBER<span class="code-tag">&lt;/source&gt;</span>
  <span class="code-tag">&lt;destination&gt;</span>DESTINATION_PHONE_NUMBER<span class="code-tag">&lt;/destination&gt;</span>
  <span class="code-tag">&lt;text&gt;</span>MESSAGE_CONTENT<span class="code-tag">&lt;/text&gt;</span>
  <span class="code-tag">&lt;npi&gt;</span>NATIONAL_PREFIX_INDICATOR<span class="code-tag">&lt;/npi&gt;</span>
  <span class="code-tag">&lt;ton&gt;</span>TYPE_OF_NUMBER<span class="code-tag">&lt;/ton&gt;</span>
<span class="code-tag">&lt;/message&gt;</span>
</pre>
</div></div>

<p>If you want to manipulate different format, you need to define your own marshaler.</p>

<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>SMPP marshaler example</b></div><div class="codeContent panelContent">
<pre class="code-xml">
<span class="code-tag">&lt;?xml version=<span class="code-quote">"1.0"</span>?&gt;</span>
&lt;beans <span class="code-keyword">xmlns:smpp</span>=<span class="code-quote">"http://servicemix.apache.org/smpp/1.0"</span>
       <span class="code-keyword">xmlns:test</span>=<span class="code-quote">"http://test"</span>&gt;

  &lt;smpp:consumer service=<span class="code-quote">"test:smpp"</span>
                 endpoint=<span class="code-quote">"endpoint"</span>
                 host=<span class="code-quote">"smpp.example.com"</span>
                 port=<span class="code-quote">"2700"</span>
                 systemId=<span class="code-quote">"test"</span>
                 password=<span class="code-quote">"test"</span>&gt;
    <span class="code-tag">&lt;property name=<span class="code-quote">"marshaler"</span>&gt;</span>
       <span class="code-tag">&lt;bean class=<span class="code-quote">"org.apache.servicemix.smpp.marshaler.OtherSmppMarshaler"</span>/&gt;</span>
    <span class="code-tag">&lt;/property&gt;</span>
  <span class="code-tag">&lt;/smpp:consumer&gt;</span>

<span class="code-tag">&lt;/beans&gt;</span>
</pre>
</div></div>

<h3><a name="servicemix-smpp-OptionalParameters%28forservicemixsmpp2010.02ornewer%29"></a>Optional Parameters (for servicemix-smpp 2010.02 or newer)</h3>

<p>SMPP provides a set of Optional parameters that can be set on the supported protocol data units. The default SMPP marshaler will treat the optional parameters as Normalized message properties (will copy matching properties from the NormalizedMessage to the PDU and vice versa). Below is a small matrix the presentes the supported optional parameters and how they are mapped to NomralizedMessage properties.</p>

<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/confluence/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Optional Parameter Support</b><br /><div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Name                     </th>
<th class='confluenceTh'> Type                        </th>
<td class='confluenceTd'> Supported by PDUs </td>
<td class='confluenceTd'> Description                               </td>
</tr>
<tr>
<td class='confluenceTd'> DEST_ADDR_SUBUNIT         </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> SUBMIT_SM, DATA_SM </td>
<td class='confluenceTd'> The subcomponent in the destination device for which the user data is intended.</td>
</tr>
<tr>
<td class='confluenceTd'> DEST_NETWORK_TYPE         </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> DATA_SM  </td>
<td class='confluenceTd'> The correct network for the destination device.</td>
</tr>
<tr>
<td class='confluenceTd'> DEST_BEARER_TYPE          </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> DATA_SM  </td>
<td class='confluenceTd'> The correct bearer type for the delivering the user data to the destination.</td>
</tr>
<tr>
<td class='confluenceTd'> DEST_TELEMATICS_ID        </td>
<td class='confluenceTd'> Short                        </td>
<td class='confluenceTd'> DATA_SM  </td>
<td class='confluenceTd'> The telematics identifier associated with the destination.</td>
</tr>
<tr>
<td class='confluenceTd'> SOURCE_ADDR_SUBUNIT       </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> SUBMIT_SM, DATA_SM </td>
<td class='confluenceTd'>The subcomponent in the destination device which created the user data. </td>
</tr>
<tr>
<td class='confluenceTd'> SOURCE_NETWORK_TYPE       </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> DATA_SM  </td>
<td class='confluenceTd'> The correct network associated with the originating device.</td>
</tr>
<tr>
<td class='confluenceTd'> SOURCE_BEARER_TYPE        </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> DATA_SM  </td>
<td class='confluenceTd'> The correct bearer type for the delivering the user data to the destination.</td>
</tr>
<tr>
<td class='confluenceTd'> SOURCE_TELEMATICS_ID      </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> DATA_SM  </td>
<td class='confluenceTd'> The telematics identifies associated with the source.</td>
</tr>
<tr>
<td class='confluenceTd'> QOS_TIME_TO_LIVE          </td>
<td class='confluenceTd'> Integer                      </td>
<td class='confluenceTd'> DATA_SM  </td>
<td class='confluenceTd'> Time to live as a relative time in seconds from submission.</td>
</tr>
<tr>
<td class='confluenceTd'> PAYLOAD_TYPE              </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> SUBMIT_SM, DELIVERY_SM, DATA_SM </td>
<td class='confluenceTd'> Defines the type of payload (e.g. WDP, WCMP, etc.).</td>
</tr>
<tr>
<td class='confluenceTd'> ADDITIONAL_STATUS_INFO_TEXT</td>
<td class='confluenceTd'> String                      </td>
<td class='confluenceTd'> DATA_SM_RESP </td>
<td class='confluenceTd'> ASCII text giving a description of the meaning of he response </td>
</tr>
<tr>
<td class='confluenceTd'> RECEIPTED_MESSAGE_ID      </td>
<td class='confluenceTd'> String                       </td>
<td class='confluenceTd'> DELIVERY_SM </td>
<td class='confluenceTd'> SMSC message ID of receipted message Should be present for SMSC Delivery Receipts and Intermediate Notifications.</td>
</tr>
<tr>
<td class='confluenceTd'> MS_MSG_WAIT_FACILITIES    </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> SUBMIT_SM </td>
<td class='confluenceTd'> This parameter controls the indication and specifies the message type (of the message associated with the MWI) at the mobile station.</td>
</tr>
<tr>
<td class='confluenceTd'> PRIVACY_INDICATOR         </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> SUBMIT_SM, DELIVERY_SM, DATA_SM </td>
<td class='confluenceTd'> Indicates the level of privacy associated with the message.</td>
</tr>
<tr>
<td class='confluenceTd'> SOURCE_SUBADDRESS         </td>
<td class='confluenceTd'> String                       </td>
<td class='confluenceTd'> SUBMIT_SM, DELIVERY_SM, DATA_SM </td>
<td class='confluenceTd'> The subaddress of tmessage originator. </td>
</tr>
<tr>
<td class='confluenceTd'> DEST_SUBADDRESS           </td>
<td class='confluenceTd'> String                       </td>
<td class='confluenceTd'> SUBMIT_SM, DELIVERY_SM, DATA_SM </td>
<td class='confluenceTd'> The subaddress of tmessage destination. </td>
</tr>
<tr>
<td class='confluenceTd'> USER_MESSAGE_REFERENCE    </td>
<td class='confluenceTd'> Short                        </td>
<td class='confluenceTd'> SUBMIT_SM, DELIVERY_SM, DATA_SM </td>
<td class='confluenceTd'> ESME asginged message reference number. </td>
</tr>
<tr>
<td class='confluenceTd'> USER_RESPONSE_CODE        </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> SUBMIT_SM , DATA_SM </td>
<td class='confluenceTd'> A user response code. </td>
</tr>
<tr>
<td class='confluenceTd'> SOURCE_PORT               </td>
<td class='confluenceTd'> Short                        </td>
<td class='confluenceTd'> SUBMIT_SM, DELIVERY_SM, DATA_SM </td>
<td class='confluenceTd'> Indicates the application port number associated with the source address of the message. This parameter should be present for WAP applications.</td>
</tr>
<tr>
<td class='confluenceTd'> DESTINATION_PORT          </td>
<td class='confluenceTd'> Short                        </td>
<td class='confluenceTd'> SUBMIT_SM, DELIVERY_SM, DATA_SM </td>
<td class='confluenceTd'> Indicates the application port number associated with the destination address of the message. This parameter should be present for WAP applications.</td>
</tr>
<tr>
<td class='confluenceTd'> LANGUAGE_INDICATOR        </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> SUBMIT_SM, DELIVERY_SM, DATA_SM  </td>
<td class='confluenceTd'> Indicates the language of an alphanumeric text message.</td>
</tr>
<tr>
<td class='confluenceTd'> SAR_MSG_REF_NUM           </td>
<td class='confluenceTd'> Byte			   </td>
<td class='confluenceTd'> SUBMIT_SM, DATA_SM </td>
<td class='confluenceTd'> The reference number for a particular concatenated short message.</td>
</tr>
<tr>
<td class='confluenceTd'> SAR_TOTAL_SEGMENTS        </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> SUBMIT_SM, DATA_SM </td>
<td class='confluenceTd'> Indicates the total number of short messages within the concatenated short message. </td>
</tr>
<tr>
<td class='confluenceTd'> SAR_SEGMENT_SEQNUM        </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> SUBMIT_SM, DATA_SM </td>
<td class='confluenceTd'> Indicates the sequence number of a particular short message fragment within the concatenated short message.</td>
</tr>
<tr>
<td class='confluenceTd'> SC_INTERFACE_VERSION      </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> BIND (not applicable) </td>
<td class='confluenceTd'> Smmp version supported by the SMSC (not applicable) </td>
</tr>
<tr>
<td class='confluenceTd'> CALLBACK_NUM_PRES_IND     </td>
<td class='confluenceTd'> String                       </td>
<td class='confluenceTd'> SUBMIT_SM, DATA_SM  </td>
<td class='confluenceTd'> Defines the callback number presentation and screening.</td>
</tr>
<tr>
<td class='confluenceTd'> CALLBACK_NUM_ATAG         </td>
<td class='confluenceTd'> String                       </td>
<td class='confluenceTd'> SUBMIT_SM, DATA_SM  </td>
<td class='confluenceTd'> Associates a displayable alphanumeric tag with the callback number.</td>
</tr>
<tr>
<td class='confluenceTd'> NUMBER_OF_MESSAGES        </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> SUBMIT_SM, DATA_SM </td>
<td class='confluenceTd'> Indicates the number of messages stored in a mail box. </td>
</tr>
<tr>
<td class='confluenceTd'> CALLBACK_NUM              </td>
<td class='confluenceTd'> String                       </td>
<td class='confluenceTd'> SUBMIT_SM, DELIVERY_SM, DATA_SM  </td>
<td class='confluenceTd'> A callback number associated with the short message. Smpp supports multiple occurances of this parameter per message, but servicemix-smmp only supports once per message. </td>
</tr>
<tr>
<td class='confluenceTd'> DPF_RESULT                </td>
<td class='confluenceTd'> String                       </td>
<td class='confluenceTd'> DATA_SM_RESP </td>
<td class='confluenceTd'> Indicates whether the Delivery Pending Flag was set.</td>
</tr>
<tr>
<td class='confluenceTd'> SET_DPF                   </td>
<td class='confluenceTd'> String                       </td>
<td class='confluenceTd'> DATA_SM </td>
<td class='confluenceTd'> Indicator for setting Delivery Pending Flag on delivery failure.</td>
</tr>
<tr>
<td class='confluenceTd'> MS_AVAILABILITY_STATUS    </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> QUERY_SM </td>
<td class='confluenceTd'> The status of the mobile station. </td>
</tr>
<tr>
<td class='confluenceTd'> NETWORK_ERROR_CODE        </td>
<td class='confluenceTd'> String                       </td>
<td class='confluenceTd'> DELIVERY_SM, DATA_SM </td>
<td class='confluenceTd'> Network Error Code. May be present for Intermediate Notifications and SMSC Delivery Receipts. </td>
</tr>
<tr>
<td class='confluenceTd'> MESSAGE_PAYLOAD           </td>
<td class='confluenceTd'> String                       </td>
<td class='confluenceTd'> SUBMIT_SM, DELIVERY_SM, DATA_SM </td>
<td class='confluenceTd'> Contains the extended short message user data. Up to 64K octets can be transmitted. </td>
</tr>
<tr>
<td class='confluenceTd'> DELIVERY_FAILURE_REASON   </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> DATA_SM_RESP </td>
<td class='confluenceTd'> Include to indicate reason for delivery failure.</td>
</tr>
<tr>
<td class='confluenceTd'> MORE_MESSAGES_TO_SEND     </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> SUBMIT_SM, DATA_SM </td>
<td class='confluenceTd'> Indicates that there are more messages to follow for the destination SME.</td>
</tr>
<tr>
<td class='confluenceTd'> MESSAGE_STATE             </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> DELIVERY_SM </td>
<td class='confluenceTd'> Message State. Should be present for SMSC Delivery Receipts and ntermediate Notifications.</td>
</tr>
<tr>
<td class='confluenceTd'> USSD_SERVICE_OP           </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> SUBMIT_SM </td>
<td class='confluenceTd'> This parameter is used to identify the required USSD Service type when interfacing to a USSD system.</td>
</tr>
<tr>
<td class='confluenceTd'> DISPLAY_TIME              </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> SUBMIT_SM, DATA_SM </td>
<td class='confluenceTd'> Provides the receiving MS with a display time associated with the message.</td>
</tr>
<tr>
<td class='confluenceTd'> SMS_SIGNAL                </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> SUBMIT_SM, DATA_SM  </td>
<td class='confluenceTd'> Indicates the alerting mechanism when the message is received by an MS.</td>
</tr>
<tr>
<td class='confluenceTd'> MS_VALIDITY               </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> SUBMIT_SM </td>
<td class='confluenceTd'> Indicates validity information for this message to the recipient MS.</td>
</tr>
<tr>
<td class='confluenceTd'> ALERT_ON_MESSAGE_DELIVERY </td>
<td class='confluenceTd'> Null                         </td>
<td class='confluenceTd'> SUBMIT_SM, DATA_SM </td>
<td class='confluenceTd'> Request an MS alert signal be invoked on message delivery.</td>
</tr>
<tr>
<td class='confluenceTd'> ITS_REPLY_TYPE            </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> SUBMIT_SM, DELIVERY_SM, DATA_SM  </td>
<td class='confluenceTd'> The MS user’s reply method to an SMS delivery message received from the network is indicated and controlled by this parameter.</td>
</tr>
<tr>
<td class='confluenceTd'> ITS_SESSION_INFO          </td>
<td class='confluenceTd'> Byte                         </td>
<td class='confluenceTd'> SUBMIT_SM, DELIVERY_SM, DATA_SM  </td>
<td class='confluenceTd'> Session control information for Interactive Teleservice. </td>
</tr>
</tbody></table>
</div>
</td></tr></table></div>

<p><ins>Note:</ins> DATA_SM, QUERY_SM and and response PDUs are not currently supported.</p>
    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href="https://cwiki.apache.org/confluence/users/viewnotifications.action" class="grey">Change Notification Preferences</a>
        </div>
        <a href="https://cwiki.apache.org/confluence/display/SM/servicemix-smpp">View Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=108896&revisedVersion=5&originalVersion=4">View Changes</a>
                |
        <a href="https://cwiki.apache.org/confluence/display/SM/servicemix-smpp?showComments=true&amp;showCommentArea=true#addcomment">Add Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message