Personal Mind of ASEP

Sepercik Rasa yang Tercurah

How to Send SMS from a Computer?


This is a very frequently asked question from developers. Nowadays, almost every one has a mobile phone. Applications for mobile phone users are very keen. Several technologies are available for developing mobile phone applications: SMS, WAP, mobile Java. Among the 3, SMS is the most widely supported technology by handsets. You can send and receive SMS on many old handset models. On the other hand, you can only find WAP and mobile Java on more recent handsets. SMS is the technology for you if you want to support the largest number of handsets.

There are 2 ways to send SMS from a PC:

1. Connect a mobile phone or GSM modem to a PC, and then program the PC to send AT commands to instruct the mobile phone or GSM modem to send SMS. You can also use some third-party software or libraries/SDKs.

2. Get access to an SMS center (SMSC) or SMS gateway through a leased line or the Internet, and send SMS using a specific protocol supported by the SMSC or SMS gateway.

The 1st Way: Send SMS from a PC Using Mobile Phone or GSM Modem

The first method is suitable when the SMS traffic is low. If you want to use a mobile phone, you should notice that some models cannot do such kind of application (See more here). A program is required to interact with the mobile phone/GSM modem to send text/binary SMS. You can write the program in any of the popular languages, such as Visual Basic, Visual C++, Java, etc. The program should make use of the AT commands. You can write the program yourself (this would be quite interesting) or you can use some free or commercial software/libraries/SDKs if you do not want to do AT-programming yourself. Some of these software/libraries/SDKs can act as a layer between your application and the physical layer, so that you can send SMS using the same set of APIs no matter you are sending SMS through a mobile phone/GSM modem, SMS gateway or SMSC, provided that the software/library/SDK supports a protocol used by the SMS gateway or SMSC.

The HyperTerminal program in MS Windows can also be used to send AT commands (See more here).

If you want to program yourself, you may want to visit the website of your handset’s manufacturer. You may find the documentation of the AT commands and other related guides there. If you are going to use a library, visit the library’s website for further information.

There is not much difference between using a mobile phone and using a GSM modem, although some mobile phone models have certain limitations. If you are serious about your application, a GSM modem is recommended (See more here). A mobile phone/GSM modem can be connected to your PC through the serial port, USB, infrared port, etc. Of course, a SIM card from a valid operator should be put in the mobile phone/GSM modem.

If you are not developing an SMS application and just want to send SMS from your PC, you can make use of some ready-to-use software. One such software is available from Microsoft. You can download it free of charge from the link Mobile manufacturers may also provide such kind of software for sending SMS. You may want to take a look at their website.

How can I know whether my mobile phone can be used to send/receive SMS with my PC?

First of all, your GSM phone must provide some way to connect to the PC, e.g. through a serial cable, an USB cable, infrared, or bluetooth. Secondly, your phone should be able to accept the extended AT commands. You can check the manual of your mobile phone for this information. You can also test your mobile phone with HyperTerminal (See more here).

If you are going to use a library, remember to check the list of supported mobile phones/GSM modems from the library’s website.

The 2nd Way: Send SMS from a PC through an SMS Center/SMS Gateway, Using the Internet or Leased Line

If you want to run an SMS business, the above method will definitely not be able to take the load. You should get access to an SMS center (SMSC) or SMS gateway. This can be further divided into 2 scenarios.

* Sign an agreement with a network operator to get access to its SMSC. Then use an SMS gateway software (e.g. Kannel) to send SMS. The network operator may only allow access to its SMSC through a leased line connection for security reasons.

* Send SMS using an interface supported by the network operator, or an SMS gateway provider. SMS gateway providers are companies specialized in SMS sending services. Unlike ordinary mobile network operators, these SMS gateway providers do not provide mobile phone services.

The first scenario is suitable for big businesses and when the SMS traffic is huge. Signing an agreement with a network operator is not an inexpensive and easy solution. This is of course not suitable for small businesses or individual developers. We will concentrate on the second scenario for the rest of this article. For the first scenario, you have to contact the mobile network operator for the details.

Basically, in order to send SMS with the second scenario, you have to know what interface/protocol the network operator or SMS gateway provider supported. Common protocols supported by SMS gateways include HTTP/HTTPS, SMTP (the protocol used by email), FTP, XML, etc. The SMS gateway staff will also provide you the set of commands they use under a certain protocol.

If you are not a developer and you just want to send SMS with your PC, the solution is even simplier. Some SMS gateway providers (like Clickatell) will offer a software for sending SMS with your PC free of charge. You just pay for the cost of the SMS. The software normally contains features like phone book management, group management, bulk SMS to multiple recipients or groups, etc.

Many mobile network operators provide SMS gateway services (although some do not). Normally, if a mobile network operator provide SMS gateway services, you can find an overview about them on the mobile network operator’s website. However, you probably will not be able to find any information about the cost of the SMS gateway service, the protocols supported, the documentation of the commands to use under a certain protocol, etc, from its website. This is because network operators want to know about your SMS application’s nature, traffic requirement, etc, before offering a price to you. If that’s the case, you will then need to contact the network operator’s staff for further information.

A more convenient way is to use the service provided by SMS gateway providers. Information like cost of service, network coverage, protocols supported, documentation of the API used, can very often be found on the SMS gateway providers’ website.Many new SMS developers have the misconception that sending SMS through an SMS gateway are only for big businesses or for those who have a very large volume of SMS traffic, and that it is very difficult to use. Because of such misconception, they employ a mobile phone/GSM modem solution for their SMS application.

In fact, it is very easy to use the service of an SMS gateway provider if you choose a simple protocol like HTTP/HTTPS. The cost per SMS sent through an SMS gateway provider can be as low as US$ 0.055 (or even lower. It depends on which SMS gateway provider you choose and the number of SMS you purchased). There is no minimal purchase requirement for many SMS gateway providers. Hence, you can use the service of an SMS gateway provider even if your SMS traffic is not high.

To use such kind of SMS gateways, usually you will register for an account at the SMS gateway provider’s website and buy a number of credits on its website. Sending an SMS will cost 1 or more credits, depending on the country you send to. After buying credits, you can immediately send SMS through the provider’s SMS gateway to all over the world using protocols like HTTP/HTTPS, SMTP, FTP, XML, etc. Some SMS gateways are non-credit-based, which means the cost per SMS is the same for sending to all countries around the world.

Let me show you how easy it is to send an SMS message through an SMS gateway, using a simple protocol like HTTP. To send an SMS message “Hello” to phone number 12345678, you will give a http get/post request in your program, something like,

where “myAccount” and “myPasswd” are the name and password of the account you opened at the SMS gateway provider’s website. If error occurs, a string “error” will be returned. Otherwise, a string “success” will be returned. If the delivery of the SMS is successful, credits will be deducted from your account “myAccount”.

This is very easy, right? You can always type the above http:// line in your web browser’s “Address” text box and press the ENTER key, and you will get the same result. Since the command is gateway-specific, the actual command to use and the return values will be somewhat different from the above example. You have to check the SMS gateway provider’s API documentation for details.

Many SMS gateway providers also provide 2-way SMS service. Detail pricing and network coverage information may be found on the SMS gateway providers’ website. You can compare different SMS gateway providers and choose the one that best suit your needs and budget. You can have a look at the article How to choose an SMS gateway provider?. A comparison of some SMS gateway providers can be found at here.

Original Source :


January 20, 2006 - Posted by | Uncategorized

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: