Free &
commercial software and tools that you can use to build your own SMS System
Depending on your budget and your objective there are 2
ways to setup your own SMS system:
1-
SMPP SMS Gateway server
& HTTP Web SMS client software (Advanced)
2-
Web SMS software
only (Basic)
1-
SMPP Server &
HTTP Web SMS client software
What is SMPP Server?
The Short Message Peer to Peer
Protocol (SMPP) is a socket-based, open industry protocol, designed for
sending 2-way SMS traffic. SMPP is the recommended connection interface
for clients who are already familiar with this protocol or the detailed options
of an SMS.
It is used to allow third parties to submit messages, often in bulk. It is a session-based peer to peer protocol. 'Session based' means a customer has to establish a connection to the SMS provider and use this connection to send or receive messages. 'Peer to peer' means that both the customer and SMS provider (i.e. the peers) may use operations defined by the SMPP protocol, depending on the type of session.
Authentication is done during the set up of this connection. After the initial authentication, the session between the customer's system and the SMS provider's system (i.e. the peers) is kept open and alive.
It is used to allow third parties to submit messages, often in bulk. It is a session-based peer to peer protocol. 'Session based' means a customer has to establish a connection to the SMS provider and use this connection to send or receive messages. 'Peer to peer' means that both the customer and SMS provider (i.e. the peers) may use operations defined by the SMPP protocol, depending on the type of session.
Authentication is done during the set up of this connection. After the initial authentication, the session between the customer's system and the SMS provider's system (i.e. the peers) is kept open and alive.
What is SMS Gateway?
An SMS gateway
typically sits between the end user who needs to send/receive SMS and a mobile
network's SMSC. Such gateways provide a choice of protocols including HTTP,
SMTP, Short Message Peer-to-Peer and web services. Providers of SMS
gateway services include SMS aggregators and mobile operators.
An SMS gateway
connects with mobile network SMSCs in order to send/receive messages and/or other
SMS gateways in order to reach mobile subscribers on multiple mobile networks.
It is therefore possible that an SMS gateway has a combination of mobile
network SMSC connections and connections with other SMS gateways in order to
provide its services. However, there is the increasing potential for delivery
problems with SMS the greater the number of SMS gateways in the delivery chain.
What Is SMS
Client software?
SMS client is a
software used by non developer users/clients to send single or bulk SMS, the
submitted messages are sent to your SMS gateway which in turn analyze the
mobile numbers and determine which over which route “SMSC” the messages will be
sent.
SMS
client software can be in many formats:
-
Web SMS
client “most common”
-
Desktop
SMS client
-
Excel
Plugin
-
Outlook
Plugin
Web SMS
client is more recommended as if there is a problem with the software you only
have to fix the problem in one location despite Desktop client if you have 100
clients and 10 of them have problems with their installation you have 10
locations where you need to look into the problem with many probabilities it
could that user OS is out dated or there is a missing dependency etc…
Advantages to
having your own SMS gateway
- You can keep your system provider independent.
- You can access more than one SMS service
providers simultaneously to increase fault tolerance and to do least cost
routing.
- You can use a GSM modem as a backup line in
case IP connectivity fails.
- You can control costs and adjust the capacity
as demand changes.
- You can provide multiple API options e.g.
HTTP & SMPP
How the
SMPP SMS gateway & SMS engine work together?
Almost all SMS
gateway servers comes with a frontend to send single and bulk SMS but often
they are very poor in options and not user friendly.
The main purpose for
the SMS gateway is to manage connections to different SMSC’s “SMS providers,
Aggregators” and the main purpose of the SMS engine is for you manage clients
account credits, billing and to provide to your clients an easy way to upload
their contacts and manage their SMS sending.
Let’s
take a case study to fully understand how it works
You decided that you
want to be a SMS provider for the Europe mainly (Italy, France, and Germany)
and after researching many suppliers you came up with 3 suppliers “aggregators”
Supplier1: gave you
best prices for Italy
Supplier2: gave you
best prices for France
Supplier3: gave you
best prices for Germany
Each supplier gave
you the option to connect to them and submit SMS’s to their gateway “SMSC”
either by HTPP API or by SMPP as you already have your own SMPP SMS gateway you
will connect to them via SMPP.
An SMPP
account basically consists of:
Host/IP: e.g. 193.375.38.46
Port: 9900
Username: username
Password: password
In your
SMS gateway you have created 3 SMPP providers accounts named as follow:
- Italysmpp
- Francesmpp
- Germanysmpp
All SMS
gateways gives a way to define routing via mobile or country dialing prefixes
-
Italy mobile prefix: 39
-
France mobile prefix: 33
- Germany mobile prefix: 49
Depending
on your SMS gateway routing interface you will setup 3 routing rules
1-
Any SMS
submitted to your gateway with a prefix: 39 will be sent via Itallysmpp
2-
Any SMS
submitted to your gateway with a prefix: 33 will be sent via Francesmpp
3-
Any SMS
submitted to your gateway with a prefix: 49 will be sent via Germanysmpp
Note: for
sure you can setup a much more complex routing rules e.g. you can define
routing for each mobile operator in each country or/and define routing based on
a predefined sender id “originator” We are just keeping it simple here for you
to understand the concept.
All SMPP
SMS gateways gives you options to create 2 types of Accounts:
1-
Provider
accounts ( we have already setup and configured above)
2-
User
accounts ( will setup as below to connect our SMS engine to it)
Now that
you have setup and configured your SMS providers account and routing rules you
also need to create a user account with access to the built in HTTP API that
comes with your SMS gateway.
Basically
a HTTP user account consists of:
Host/IP: sms.domain.com:8080 (could be assigned a specific port or uses the
standard port 80)
Username: username
Password: password
Credits: e.g. 10000 (the maximum number of SMS that can be sent by this
account)
If you will be using
the SMS client that may come with your SMS gateway or an SMS client compatible
with your SMS gateway all you need to do to connect your SMS client to the SMS
gateway is to enter the username and password. Otherwise you will need a
developer to integrate your SMS gateway HTTP API into that SMS client, there
are also a number of SMS clients where you don’t need a developer to implement
the API as it comes with an administration interface where you can enter the
parameters of any HTPP API below is an example of HTPP API URL parameters
Example URL Request
http://127.0.0.1:9501/api?action=sendmessage&username=admin&password=abc123&
recipient=06203105366&messagetype=SMS:TEXT&messagedata=Hello+World
recipient=06203105366&messagetype=SMS:TEXT&messagedata=Hello+World
Example Response
HTTP/1.1 200 OK
Content-Type:
application/xml
Content-Length: 246
<?xml
version="1.0" encoding="UTF-8"?>
<!DOCTYPE smsapi
PUBLIC "-//OZEKI//DTD XML 1.0//EN"
"http://www.ozekisms.com/DTD/smsapi.xml">
<response>
<action>sendmessage</action>
<data>
<acceptreport>
<statuscode>0</statuscode>
<statusmessage>Message accepted
for delivery</statusmessage>
<messageid>ERFAV23D</messageid>
<recipient>06203105366</recipient>
</acceptreport>
</data>
</response>
The best way to
understand and to get a feel of what an SMS client would look like is to see
and test a live demo visit this link http://playsms.org/demo/ where you will find login details to PlaySMS
an open source SMS client that can work as a plug and play SMS client to the
open source Kannel SMS gateway or as a standalone SMS client where you can
connect to different providers via HTPP API
Web SMS client software only (Basic)
Depending only on Web SMS client software is suitable
only if your are working on a small scale market and your clients will not be sending
large volume of SMS like 10k – 20k+ SMS
in one shot as some providers limit the maximum number of SMS’s that you
can submit via HTTP at a single request, you will also be limiting yourself
only to clients who will be sending through your web interface or via your SMS
client HTPP API if it comes with built in HTTP API, you will not be able to
provide SMPP accounts to your clients if requested
Live examples of web SMS client software:
PlaySMS: http://playsms.org/demo/ (Free Open Source)
Xtrabulk: http://xtrabulk.com/
(Commercial Open Source)
List of Free Open Source SMPP SMS gateway:
List of Free Open Source SMS Clients:
List of Commercial SMPP SMS gateway:
List of Commercial web SMS client: