Sending an SMS from a PC to a GSM phone can be done in many ways.
The first method I discuss requires a GSM phone attached to your PC.
The GSM phone (or GMS card) can be connected to your PC in different ways; using BlueTooth, infrared (IrDA) or a serial cable. The way the phone is connected is irrelevant, what counts is that the GSM is available as a modem. On Windows PCs, this means that it will be available as a TAPI modem.
Programs make modems do things by sending them so called AT commands. E.g.
ATD5551234 makes the modem dial a connection to the number 5551234.
ATA makes the modem answer an incoming call. All your modem’s features are available using commands like these.
There is a special set of these AT commands to manipulate short messages (SMS). These AT commands are published by the 3GPP as Technical Specification TS 27.005. These AT commands are only understood by (GSM) devices that can send short messages.
- A GSM that you can connect to a PC (using BlueTooth, Infrared or a data (serial) cable.
- The GSM can act as a modem. Some phones come with a cable and software that allows you to configure ring tones and manipulate the address book, this does not require your phone to act as a modem. Phones that can act as a modem often let you pick the type of connection a PC can make.
- The GSM can be used to send short messages (Mobile Originated short messages). If you can’t send an SMS using the phone by hand, it is unlikely that it can be done via your computer.
If your phone fulfills all 3 requirements, then it is likely that you can use it to send SMS messages from your PC. But this is not true for every phone. Even some advanced smartphones (like the Eriksson P800) don’t support the modem command set required to send SMS messages.
I guess the philosophy is that ‘the device itself is so smart, you don’t need a PC to send SMS messages’. Unfortunately, there are many types of (binary) SMS messages that the device itself can’t support, but could be sent if only it supported the specific modem set.
There are 2 ‘modes’ defined for sending SMS messages this way. A device and support either or both:
- Text mode. In text mode, it is very simple to send a text SMS message. The AT command could be typed in manually using a program like hyper-terminal. In text mode, however only text messages can be sent. But there many more fun messages to be sent.
- PDU mode. In PDU mode any type of SMS message can be sent. The PC submits a PDU (protocol data unit) to the GSM device, and the GSM device just passes this on to the GSM network (actually to the SMSC). The command to send a PDU is still simple, but the formatting of a PDU is not and cannot be done without a program. An interesting fact is that the GSM device itself does not need to understand the PDU it is sending, so you could send an EMS message or a WAP push message using a phone that doesn’t support either.
I have not yet encountered a phone that only supports text mode, but I have encountered many devices that support only PDU mode. So if you want to write a generic program to send SMS messages you’re better off if you do it using PDU mode.
Fortunately, PDU mode also offers us the richest set of applications, only though PDU mode we can send EMS, WAP push, bookmarks, configuration, and other fancy SMS messages.
In the next few posts, I’ll dive a little more into the details of how to send an SMS in text mode and how to send an SMS in PDU mode.