Author: ruwan
Date: Tue Sep 22 12:00:57 2009
New Revision: 817622
URL: http://svn.apache.org/viewvc?rev=817622&view=rev
Log:
SMS transports guide for the 1.0 branch
Modified:
webservices/commons/branches/modules/transport/1.0.0/src/site/xdoc/sms.xml
Modified:
webservices/commons/branches/modules/transport/1.0.0/src/site/xdoc/sms.xml
URL:
http://svn.apache.org/viewvc/webservices/commons/branches/modules/transport/1.0.0/src/site/xdoc/sms.xml?rev=817622&r1=817621&r2=817622&view=diff
==============================================================================
--- webservices/commons/branches/modules/transport/1.0.0/src/site/xdoc/sms.xml
(original)
+++ webservices/commons/branches/modules/transport/1.0.0/src/site/xdoc/sms.xml
Tue Sep 22 12:00:57 2009
@@ -274,3 +274,279 @@
</section>
</body>
</document>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//Apache Software Foundation//DTD XDOC 1.0//EN"
+ "http://www.apache.org/dtds/xdoc_1_0.dtd">
+<!--
+~ Licensed to the Apache Software Foundation (ASF) under one
+~ or more contributor license agreements. See the NOTICE file
+~ distributed with this work for additional information
+~ regarding copyright ownership. The ASF licenses this file
+~ to you under the Apache License, Version 2.0 (the
+~ "License"); you may not use this file except in compliance
+~ with the License. You may obtain a copy of the License at
+~
+~ http://www.apache.org/licenses/LICENSE-2.0
+~
+~ Unless required by applicable law or agreed to in writing,
+~ software distributed under the License is distributed on an
+~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+~ KIND, either express or implied. See the License for the
+~ specific language governing permissions and limitations
+~ under the License.
+-->
+<document>
+ <properties>
+ <title>new document</title>
+ </properties>
+
+ <body>
+ <section name="Introduction">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
+ </section>
+
+ <section name="Transport Listener" onclick="">
+ <subsection
+ name="Configuration"><pre><transportReceiver name="sms"
+
class="org.apache.axis2.transport.sms.SMSMessageReciever"></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>
+ <th>Parameter</th>
+
+ <th>Required</th>
+
+ <th>Description</th>
+ </tr>
+
+ <tr>
+ <td>systemType</td>
+
+ <td>No</td>
+
+ <td>To inform the binding SMSC about the system Type
That connecting
+ to it.The Default value is "cp". .Some SMSC s does
not require this
+ to connect.
+ </td>
+ </tr>
+
+ <tr>
+ <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>
+ <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>
+ <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>
+ <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>
+ <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/">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><parameter
name="smsImplClass">org.apache.axis2.transport.sms.gsm.GSMImplManager</parameter></pre>
+ <table class="bodyTable">
+ <tr>
+ <th>Parameter</th>
+
+ <th>Required</th>
+
+ <th>Description</th>
+ </tr>
+
+ <tr>
+ <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>
+ <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 "/dev/ttyUSB0"
+ </td>
+ </tr>
+
+ <tr>
+ <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>
+ <td>manufacturer</td>
+
+ <td>Yes</td>
+
+ <td>The Name of the Manufacturer that the device
manufactured
+ by.Example manufactures are "NOKIA" , "HUAWEI"
+ </td>
+ </tr>
+
+ <tr>
+ <td>model</td>
+
+ <td>Yes</td>
+
+ <td>The model id of the device.</td>
+ </tr>
+
+ <tr>
+ <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>
+ </subsection>
+ </section>
+
+ <section name="TransportSender">
+ <subsection name="Configuration"><pre><transportSender
name="sms"
+ class="org.apache.axis2.transport.sms.SMSSender"></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)
+ </subsection>
+ The Configuration
+ Parameters for the GSM and SMPP implimentations are same as the
above
+ discribed for the Transport Listender.
+ </section>
+
+ <section name="Extending SMS Transport">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.
+ <subsection
+ name="SMSMessageBuilder">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>
+ "ServiceName":"Operation Name":
+
"Parameter_1=value_1":......:"Parameter_N=value_N"</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><parameter name="builderClass">Class
Name</parameter></pre>
+ </subsection>
+ <subsection name="SMSMessageFormatter">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><parameter name="formatterClass">Class
Name</parameter></pre>
+ </subsection>
+ <subsection
+ name="Implimentation">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><parameter name="smsImplClass">Class
Name</parameter></pre>
+ </subsection>
+ </section>
+ </body>
+</document>