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.
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.
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.
GSMI/GSMD::Gnokii is a Perl module for Gnokii. Gnokii's readme file includes a brief description of it. Perl programmers can use this Perl module to get access to Gnokii's functions.
- 1. Introduction to SMS Messaging
- 2. What Makes SMS Messaging So Successful Worldwide?
- 3. Example Applications of SMS Messaging
- 4. What is an SMS Center / SMSC?
- 5. Basic Concepts of SMS Technology
- 6. Intra-operator SMS Messages
- 7. Inter-operator SMS Messages
- 8. International SMS Messages
- 9. What is an SMS Gateway?
- 10. How to Send SMS Messages from a Computer / PC?
- 11. How to Receive SMS Messages Using a Computer / PC?
- 12. Introduction to GSM / GPRS Wireless Modems
- 13. How to Use Microsoft HyperTerminal to Send AT Commands to a Mobile Phone or GSM/GPRS Modem?
- 14. Introduction to AT Commands
- 15. General Syntax of Extended AT Commands
- 16. Result Codes of AT Commands
- 17. AT Command Operations: Test, Set, Read and Execution
- 18. Testing the Communication between the PC and GSM/GPRS Modem or Mobile Phone
- 19. Checking if the GSM/GPRS Modem or Mobile Phone Supports the Use of AT Commands to Send, Receive and Read SMS Messages
- 20. Operating Mode: SMS Text Mode and SMS PDU Mode
- 21. Setting or Reading the Service Center Address / SMSC Address (AT+CSCA)
- 22. Preferred Message Storage (AT+CPMS)
- 23. Writing SMS Messages to Memory / Message Storage (AT+CMGW)
- 24. Deleting SMS Messages from Message Storage (AT+CMGD)
- 25. Sending SMS Messages from a Computer / PC Using AT Commands (AT+CMGS, AT+CMSS)
- 26. Reading SMS Messages from a Message Storage Area Using AT Commands (AT+CMGR, AT+CMGL)
- 27. Appendix A: How to Choose an SMS Service Provider (SMS Gateway Provider, SMS Reseller, SMS Broker)?
- 28. Appendix B: Comparison Table of SMS Service Providers (SMS Gateway Providers, SMS Resellers, SMS Brokers)
- 29. Appendix C: Free Software/Tools and Libraries for Sending and Receiving SMS Messages with a Computer / PC
- 30. Appendix D: GSM 7-bit Default Alphabet Table (with Character Codes of ISO 8859 Latin 1)