Free
Software/Tools and Libraries for Sending and Receiving SMS Messages
with a Computer / PC

Hyperlinks
to some free software, tools and libraries for sending and receiving
SMS messages with a computer / PC are listed below. Many of the
software, tools and libraries shown below are not only free, but are
open source.

For
Non-Developers

Microsoft
SMS Sender is a piece of free Windows software that can be used to
send SMS text messages from a computer via a GSM mobile phone.
Localized versions are available in more than 20 languages, including
Arabic, simplified Chinese, French, German, Italian, Russian and
Spanish. One major limitation of Microsoft SMS Sender is that it
cannot receive SMS messages from the cell phone. Besides, it does not
support message formats other than ordinary SMS text messages. For
example, concatenated SMS messages, flash SMS messages, MMS messages,
ring tones and logos are not supported.

For
Both Developers and Non-Developers

Gnokii
is a free and open source command line tool that can be used to send
and receive SMS messages through a mobile phone or GSM modem. It can
also be used to read and write entries of the phone book and
calendar, handle logos, load ring tones, etc. In addition, the Gnokii
project contains a modem driver called gnokiid, which allows you to
use some old Nokia mobile phones (for example, Nokia 5110 and Nokia
6110) that do not support AT commands as ordinary AT-compatible
modems.

Gnokii
works fine with mobile phones that support AT commands. Gnokii
supports a lot of mobile phone models from Nokia, even some of those
that use Nokia's proprietary protocol instead of AT commands for
communicating with a computer. A list of the mobile phones and GSM
modems supported by Gnokii can be found on its web site.

If
you are not an SMS software developer, you may want to use XGnokii or
Gnocky instead of the command-line program. XGnokii and Gnocky
provide a good-looking and intuitive GUI, which is easier to use than
the command-line program. XGnokii is included in the Gnokii package,
while Gnocky can be downloaded separately from the Gnokii web site.
Some screenshots of XGnokii and Gnocky can be found at here.

If
you are an SMS software developer and would like to write a program
to send and receive SMS messages via a mobile phone or GSM modem from
a computer, you may find Gnokii useful. By making use of the
functions of Gnokii, you do not need to learn how to program with AT
commands in order to control the mobile phone or GSM modem. It is
easy to write a script or program to drive the command-line Gnokii in
the background. Another choice is to use libgnokii, the back-end
library that provides basic functions to Gnokii.

Like
Gnokii, Gammu is a free and open source command line tool that can be
used to send and receive SMS messages from a computer via a mobile
phone or GSM modem. Gammu was started based on Gnokii's experience
but it evolves independently. Besides sending and receiving SMS
messages, Gammu can be used to perform many different tasks such as
reading and writing entries of the phone book and calendar, handling
logos, loading ring tones, managing bookmarks, changing WAP settings,
making data calls, etc.

Gammu
supports mobile phones that can work in AT command mode. Like Gnokii,
Gammu supports lots of Nokia mobile phones, even some of those that
use Nokia's proprietary protocol instead of AT commands for
communicating with a computer. A list of the mobile phones and GSM
modems supported can be found on Gammu's web site.

If
you are not an SMS software developer, you may want to use Wammu
instead of the command-line Gammu. Wammu is a program developed with
wxPython. It provides a good-looking and intuitive GUI, which is
easier to use than Gammu. Some screenshots of Wammu can be found at
here.

If
you are an SMS software developer and want to write a program to send
and receive SMS messages from a computer via a mobile phone or GSM
modem, you may find Gammu useful. By making use of the functions of
Gammu, you do not need to learn about AT commands in order to control
the mobile phone or GSM modem. It is easy to write a script or
program to drive the command-line Gammu in the background. Another
choice is to use LibGammu, the back-end library that provides basic
functions to Gammu.

In
addition, you can find two pieces of software, Python-Gammu and
Gammu+, on Gammu's web site. Python-Gammu is a Python module that
allows software developers to get access to Gammu's functions in
Python scripts. Gammu+ is a C++ version of Gammu. Gammu+ and Gammu
are released under different licenses.

gsmlib
is an open source and free library that works under a variety of OSs
such as Linux, FreeBSD and MS Windows. You can use it to send and
receive SMS messages with a PC through a GSM mobile phone or GSM
modem. You can also use it to read/write SMS messages and phone book
entries from/to the SIM card or store of a mobile phone. Besides the
library, some command line tools that give access to the functions of
the library are available.

gsmlib
supports mobile phones that can work in AT mode. Most GSM phones can
work in AT mode these days. A list of the mobile phones and GSM
modems supported can be found on gsmlib's web site.

If
you are not an SMS software developer, you may want to use xgsmlib
instead of the command-line tools of gsmlib. xgsmlib is a graphical
user interface for gsmlib. It runs under GNOME. Sending and receiving
SMS messages with xgsmlib is easier and more intuitive than with
gsmlib's command line tools. Some screenshots of xgsmlib can be found
at here.

If
you are an SMS software developer and need to write a program to send
and receive SMS messages from a computer via a mobile phone or GSM
modem, you can directly link the gsmlib library to your program and
call its functions. In this way, you do not need to learn how to
program with AT commands in order to control the mobile phone or GSM
modem. Another way is to write a script or program to drive gsmlib's
command line programs in the background.

For
Developers

Kannel
is a famous, powerful, open source and free SMS gateway and WAP
gateway. You can use it to connect to a mobile operator's SMS center
(SMSC), or using a GSM mobile phone or GSM modem as a virtual SMS
center. Kannel can handle multiple SMS centers and virtual SMS
centers. You can specify the SMS center or virtual SMS center that an
SMS message should be routed to. This feature is useful in situations
such as when you have multiple SMS center/virtual SMS center
connections and some of them are cheaper or faster to deliver SMS
messages.

Kannel
supports the use of AT-capable mobile phones as virtual SMS centers.
Most GSM mobile phones are capable to work with AT commands these
days. A small list of mobile phones and GSM modems that are known to
work as virtual SMS centers with Kannel is available on its web site.

The
SMSC access protocols supported by Kannel include SMPP, CIMD, UCP /
EMI and SMS2000 / OIS. In addition, Kannel has an HTTP / HTTPS
interface that you can use to send and receive SMS messages.

As
Kannel is a complex program with lots of functions, it may be hard to
use for beginners.

OpenSMPP
API is an open source and free Java API. It can be used to
communicate with an SMS center (SMSC) or SMS gateway using the SMPP
(Short Message Peer to Peer) protocol. SMS software developers can
use this library to connect to an SMSC or SMS gateway and
send/receive SMS messages. OpenSMPP API was formerly known as Logica
SMPP API since it was originally developed by Logica (an SMSC
vendor). Later Logica did not maintain the API any more, but you can
still find their web site at http://opensmpp.logica.com/
(note that the web site has not been updated for a long time). Now
the SMS Forum develops and
maintains the API. (The SMS Forum is a non-profit organization that
controls the development of the SMPP protocol.)

SMPP
Client Test Tool (SCTT) (After clicking on this link, you will
see the SMS Forum Terms and Conditions. Accept it and you will see a
form. In the "Select Item" combo box, choose one of the
three "SMPP Client Test Tool" items, e.g. "SMPP Client
Test Tool (Linux)".)

SMPP
Client Test Tool is a free SMSC simulator provided by the SMS Forum
(a non-profit organization that is now responsible for the
development of the SMPP protocol). You can use it to test an SMPP
client (e.g. your SMS messaging application) without a real SMSC or
SMS gateway. The SMPP Client Test Tool can be run on three platforms:
Linux, Solaris and HP-UX.

Like
SCTT, SMPPSim is a free SMSC simulator. You can use it to test your
SMPP application without a real SMSC or SMS gateway. SMPPSim has a
web-based graphical user interface (screenshots
1, screenshots
2). As SMPPSim is written in Java, it can be run on Java-capable
platforms such as Microsoft Windows and Linux.

SMSLib
is an open source and free library for Java and Microsoft .NET.
SMSLib for Java was formerly called jSMSEngine. With SMSLib, you can
easily write a Java or .NET program to send and receive SMS messages
from a computer via a GSM mobile phone or GSM modem without learning
AT commands. If you write your SMS software in Java, you can take
advantage of Java's code portability feature -- your SMS software can
be executed in many different operating systems such as Microsoft
Windows, Linux, Solaris and Mac OS. SMSLib supports concatenated SMS
messages and flash SMS messages, but it does not support ring tones
and logos.

SMSLib
supports mobile phones that can work in AT mode. Most GSM mobile
phones can work in AT mode these days.

Developing
SMS software with SMSLib for dotNet requires Microsoft .NET Framework
2.0 SDK. For SMSLib for Java, it is recommended to use J2SE SDK 5.0,
since the author of SMSLib wrote and tested SMSLib with J2SE SDK 5.0.

The
SMSLib package contains a standalone SMS application called
SMSServer. It uses SMSLib as its back-end library. You can use
SMSServer to send/receive SMS messages without developing your own
program. For example, you can prepare an XML file with the SMS
messages you want to send, give the XML file to SMSServer and
SMSServer will send the SMS messages out automatically.

What do you think about this web page? It is very helpful. It is helpful, but some information I wanted is missing. It is not helpful. It has broken links. It has typos / grammatical mistakes. It has incorrect information. Others

(Optional) Please provide us more details. For example, suppose you select option 2 above, can you tell us specifically what information is missing? You can also suggest anything that can help us improve this web page.

(Optional) Your name:

(Optional) Your email address:

Due to the amount of messages we received, we may not be able to reply to all messages.