blob: b5b63203359689e78f45fc905d8aea96eabe70df [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Axis2 Transports - new document</title>
<style type="text/css" media="all">
@import url("./css/maven-base.css");
@import url("./css/maven-theme.css");
@import url("./css/site.css");
</style>
<link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
</head>
<body class="composite">
<div id="banner">
<a href="../transports" id="bannerLeft">
</a>
<a href="http://www.apache.org" id="bannerRight">
<img src="images/asfLogo.jpg" alt="" />
</a>
<div class="clear">
<hr/>
</div>
</div>
<div id="breadcrumbs">
<div class="xleft">
Last Published: 07 Dec 2009
</div>
<div class="xright"> <a href="http://www.apache.org/" class="externalLink">Apache</a>
|
<a href="../../">WebServices</a>
|
<a href="../">Commons</a>
|
<a href="../../axis2/">Axis2</a>
|
<a href="http://synapse.apache.org/" class="externalLink">Synapse</a>
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="leftColumn">
<div id="navcolumn">
<h5>Axis2 Transports</h5>
<ul>
<li class="none">
<a href="index.html">About</a>
</li>
<li class="expanded">
<a href="download_index.html">Downloads</a>
<ul>
<li class="none">
<a href="download.cgi">Releases</a>
</li>
<li class="none">
<a href="source-repository.html">Source Code</a>
</li>
</ul>
</li>
<li class="expanded">
<a href="docs_index.html">Documentation</a>
<ul>
<li class="none">
<a href="jms.html">JMS Transport</a>
</li>
<li class="none">
<a href="mail.html">Mail Transport</a>
</li>
<li class="none">
<a href="tcp-transport.html">TCP Transport</a>
</li>
<li class="none">
<strong>SMS Transport</strong>
</li>
<li class="none">
<a href="apidocs/index.html">Java Doc</a>
</li>
</ul>
</li>
<li class="expanded">
<a href="project-info.html">Project Information</a>
<ul>
<li class="none">
<a href="mail-lists.html">Mailing Lists</a>
</li>
<li class="none">
<a href="building.html">Building</a>
</li>
<li class="none">
<a href="issue-tracking.html">Issue Tracking</a>
</li>
<li class="none">
<a href="dependencies.html">Dependencies</a>
</li>
<li class="none">
<a href="dependency-convergence.html">Dependency Convergence</a>
</li>
<li class="none">
<a href="dependency-management.html">Dependency Management</a>
</li>
<li class="none">
<a href="plugins.html">Plugins</a>
</li>
<li class="none">
<a href="plugin-management.html">Plugin Management</a>
</li>
<li class="none">
<a href="team-list.html">Project Team</a>
</li>
<li class="none">
<a href="project-summary.html">Project Summary</a>
</li>
</ul>
</li>
</ul>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
<img alt="Built by Maven" src="./images/logos/maven-feather.png"></img>
</a>
</div>
</div>
<div id="bodyColumn">
<div id="contentBox">
<div class="section"><h2><a name="Introduction"></a>Introduction</h2>
The SMS Transport will allow send and receive
messages in the form of SMSs used in mobile phones.Using this transport
the users will be able to invoke webservices using a SMS and get the
responce.SMS Transport is mainly focus on enableing SMPP protocal support
for the Axis2 so that It can connect with a SMSC to send/receive SMS.It
will also have a GSM implimentation that will enable users to connect a
GSM modem and send/receive sms s using that.The configuration parameters
will be different depend on the implimentaion that the user will be using
(SMPP/ GSM) Follwoing up section will be discuss more details about the
configuration ,usage and Extenting of the SMS Transport
</div>
<div class="section"><h2><a name="Transport_Listener"></a>Transport Listener</h2>
<div class="section"><h3><a name="Configuration"></a>Configuration</h3>
<pre>&lt;transportReceiver name=&quot;sms&quot;
class=&quot;org.apache.axis2.transport.sms.SMSMessageReciever&quot;&gt;</pre>In
order to use the sms Transport Listener It must be Configured in the
Axis2.xml.It will be having set of parameters to be configured depending
on the implementation that a user needed.(SMPP/GSM)
<br />
<p><br />
Parameters Needed for the SMPP and GSM implementation are Explined
bellow.
<br />
<br />
<b>SMPP Configuration</b></p>
When using the SMPP
implimentaiton It will connect with a SMSC (Short Message Service center)
and Listening to the incomming messsages on a TCP connection.This
implimentaion can be used when the data traffic is so high.
<table class="bodyTable"><tr class="a"><th>Parameter</th>
<th>Required</th>
<th>Description</th>
</tr>
<tr class="b"><td>systemType</td>
<td>No</td>
<td>To inform the binding SMSC about the system Type That connecting
to it.The Default value is &quot;cp&quot;. .Some SMSC s does not require this
to connect.
</td>
</tr>
<tr class="a"><td>systemId</td>
<td>Yes</td>
<td>The system_id parameter is used to identify an ESME (In this
case Axis2 )or an SMSC at bind time. An ESME system_id identifies
the ESME or ESME agent to the SMSC. The SMSC system_id provides an
identification of the SMSC to the ESME.
</td>
</tr>
<tr class="b"><td><em>Password</em></td>
<td>Yes</td>
<td>The password parameter is used by the SMSC to authenticate the
identity of the binding ESME (In this Case Axis2). The Service
Provider may require ESME?s to provide a password when binding to
the SMSC. This password is normally issued by the SMSC system
administrator.
</td>
</tr>
<tr class="a"><td>host</td>
<td>No</td>
<td>The IP address of the host that SMSC is located.The default is
Local host - 127.0.0.1
</td>
</tr>
<tr class="b"><td>port</td>
<td>No</td>
<td>The port Number that Axis2 must connect with the SMSC.The
Default port is 2775
</td>
</tr>
<tr class="a"><td>phoneNumber</td>
<td>No</td>
<td>The phone Number that Axis2 Application given from the Service
provider.
</td>
</tr>
</table>
<br />
<b>GSM Configuration</b><br />
GSM implementation can be
used to send receive SMS using a GSM modem connected.Its use the
<a href="http://smslib.org/" class="externalLink">SMSLib
</a>
library so that all SMSLib supported
GSM modems will be working with the GSM implimentation.This implementation
can only be used when the Data Traffic is very low (about 6 messages per
minute) since The Message Send / receive rate supported by GSM modems is
normally very low.Other than Following Parameters in the table to use the
GSMImplimentation User must specify the implementation Class of the GSM
implementation as a Parameter
<pre>&lt;parameter name=&quot;smsImplClass&quot;&gt;org.apache.axis2.transport.sms.gsm.GSMImplManager&lt;/parameter&gt;</pre><table class="bodyTable"><tr class="b"><th>Parameter</th>
<th>Required</th>
<th>Description</th>
</tr>
<tr class="a"><td>gateway_id</td>
<td>Yes</td>
<td>Gateway id is the Id that is used to identify the device that
you are going to use as the gateway.
</td>
</tr>
<tr class="b"><td>com_port</td>
<td>Yes</td>
<td>The communication port that the device is connected.As a Example
in a Linux machine if the device is connected through a USB the port
will be some thing like &quot;/dev/ttyUSB0&quot;
</td>
</tr>
<tr class="a"><td><em>baud_rate</em></td>
<td>Yes</td>
<td>The Baud rate of the device.This can be found out by looking in
to device details.
</td>
</tr>
<tr class="b"><td>manufacturer</td>
<td>Yes</td>
<td>The Name of the Manufacturer that the device manufactured
by.Example manufactures are &quot;NOKIA&quot; , &quot;HUAWEI&quot;
</td>
</tr>
<tr class="a"><td>model</td>
<td>Yes</td>
<td>The model id of the device.</td>
</tr>
<tr class="b"><td>modem_poll_interval</td>
<td>No</td>
<td>This is the interval that the application will poll the devices
message storage to get the incoming messages.The default value is 5
seconds.
</td>
</tr>
</table>
</div>
</div>
<div class="section"><h2><a name="TransportSender"></a>TransportSender</h2>
<div class="section"><h3><a name="Configuration"></a>Configuration</h3>
<pre>&lt;transportSender name=&quot;sms&quot;
class=&quot;org.apache.axis2.transport.sms.SMSSender&quot;&gt;</pre>In
order to use the sms Sender It must be Configured in the Axis2.xml.It will
be having set of parameters to be configured depending on the
implementation that a user needed.(SMPP/GSM)
</div>
The Configuration
Parameters for the GSM and SMPP implimentations are same as the above
discribed for the Transport Listender.
</div>
<div class="section"><h2><a name="Extending_SMS_Transport"></a>Extending SMS Transport</h2>
The SMS Transport is Designed to
be extended to use with Other SMS implementations as well.It has two
logical layers one is the SMS Layer which has all Axis2 dependent code and
Other one is The Implementation layer which only contain the
implementation logic related to the specific implimentation.So the
Developers who need to write a another implementation can reuse the SMS
layer and focus oly about thire implementation logic.
<div class="section"><h3><a name="SMSMessageBuilder"></a>SMSMessageBuilder</h3>
SMSMessageBuilder determines the message format
that Axis2 accepting from the incoming SMS.In the Default
SMSMessageBuilder implementation its supported for the RPC type SMS format
for the incoming SMS to invoke a Webservice its :<b>
&quot;ServiceName&quot;:&quot;Operation Name&quot;:
&quot;Parameter_1=value_1&quot;:......:&quot;Parameter_N=value_N&quot;</b>.Developers can add
another Builder to accept another formats by implementing the
SMSMessageBuilder interface and Specifying it as a Parameter in the
TransportListener
<pre>&lt;parameter name=&quot;builderClass&quot;&gt;Class Name&lt;/parameter&gt;</pre></div>
<div class="section"><h3><a name="SMSMessageFormatter"></a>SMSMessageFormatter</h3>
SMSMessageFormatter
formats the out put SMS Message Form the Axis2 MessageContext.Developers
can Add a custom MessageFormatter by Implementing the SMSMessageFormatter
interface and Specifying it as a Parameter in the TransportSender.
<pre>&lt;parameter name=&quot;formatterClass&quot;&gt;Class Name&lt;/parameter&gt;</pre></div>
<div class="section"><h3><a name="Implimentation"></a>Implimentation</h3>
SMS Trasnport also allows Developers to add another
SMS implementations to the SMS Transport.To Add a another Implementation
It should have an Implementation manager that implements the
SMSImplManager interface.In that Implementation Developers can add their
custom implementation logic without worring about the Axis2
Dependensies.To add a Implementation Manager It must be Specified as a
parameter in Transport Receiver and sender
<pre>&lt;parameter name=&quot;smsImplClass&quot;&gt;Class Name&lt;/parameter&gt;</pre></div>
</div>
</div>
</div>
<div class="clear">
<hr/>
</div>
<div id="footer">
<div class="xright">&#169;
2004-2009
The Apache Software Foundation
</div>
<div class="clear">
<hr/>
</div>
</div>
</body>
</html>