Basically, there are 3 ways to receive SMS messages using your computer.
- 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 receive SMS. You can also use some third-party software or libraries/SDKs.
- Receive SMS messages using the service of an SMS gateway provider.
- Get access to the SMS center (SMSC) or SMS gateway of a mobile network operator through a leased line or the Internet, and receive SMS using a specific protocol supported by the SMSC or SMS gateway.
Although the techniques used for sending and receiving SMS messages are similar, there exists quite a number of differences. You may want to take a look at the article “How to Send SMS from a Computer?” before continuing.
The 1st Way: Receive SMS Using a PC With a Mobile Phone or GSM Modem
Receiving SMS using this way has a major advantage over the other 2 ways – network operators do not charge any fee for receiving incoming SMS messages with their SIM card. Although the amount of SMS traffic that a mobile phone/GSM modem can handle is very limited, you can overcome this by load balancing several mobile phones/GSM modems. Each mobile phone/GSM modem will have its own SIM card and phone number.
In terms of programming, sending and receiving SMS are similar. Basically, what you need to do is to send instructions (in the form of AT commands) to the mobile phone/GSM modem. You can take a look at the article “Free Libraries/Tools for Sending/Receiving SMS with a Computer” if you do not want to do any tedious AT-command programming yourself. You can also use some commercial software/libraries/SDKs for such purposes. Some of these software/libraries/SDKs can act as a layer between your SMS application and the physical layer, so that you can receive SMS using the same set of APIs no matter you are receiving 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 2nd Way: Receive SMS Using the Service of an SMS Gateway Provider
An SMS gateway provider generally supports two kinds of solution.
- Host your SIM card at the SMS gateway provider’s site. You will have your own incoming phone number. All SMS messages received will be forwarded to your system using a specific protocol supported by the SMS gateway provider.
- Use an incoming phone number shared by several companies or individuals. The SMS gateway provider will provide you a phone number that is shared by its customers. You have to specify one or more keywords to associate with your application. If an SMS is received and its content begins with the keyword specified by you, the SMS gateway will forward the SMS to your system using a specific protocol supported by the SMS gateway provider.
Some SMS gateway providers can provide customized 2-way SMS solution for your application. You have to contact their staff to discuss the details.
Whenever an SMS is received, the SMS gateway will notify your SMS application through an interface such as HTTP/HTTPS, FTP, SMPP, email, etc. Let’s take HTTP as an example. You provide the SMS gateway an URL, say http://yourserver.com/incomingsms. Every time an SMS message is received, the SMS gateway will send a HTTP post/get request to the URL with the contents of the SMS as the parameters. For example, http://yourserver.com/incomingsms?sender=12345678&text=xxxx, where 12345678 is the sender’s mobile phone number and xxxx is the content of the SMS. Your server can handle the HTTP post/get in any web language like CGI, Perl, PHP, ASP, JSP, Java servlet, etc.
To host your SIM card at the SMS gateway provider’s site, you need to mail your SIM card to the SMS gateway provider. If you end the service, the SMS gateway provider will mail it back to you. Your SIM card will be put into the SMS gateway provider’s GSM modem. So, this approach has similar weakness as the approach of receiving SMS using your own mobile phone/GSM modem – it cannot handle very high SMS traffic. The advantage of this approach is that you do not need to buy, set up, and manage the necessary equipment. Also, you do not need to write any program to control the receiving of SMS from a GSM modem, which means you can concentrate on the business logic of your SMS application. The SMS gateway provider may provide you a detail log of the incoming SMS. You SIM card needs to support foreign network roaming if the SMS gateway provider is located overseas.
To provide you shared incoming phone number service, the SMS gateway provider opens a phone number at a network operator. Since the phone number is provided by the network operator directly (not through SIM card), the SMS gateway provider is able to receive a high SMS traffic with this phone number. If the number of people sharing the phone number is small, you can enjoy a high performance. Performance drops as the number of people sharing the phone line increases. Besides, there is overhead in processing the incoming SMS by the SMS gateway provider’s system. For example, the system needs to parse an incoming SMS to find out the keyword and then search the database to find out who the SMS should be forwarded to, etc. This approach has similar advantages as hosting your SIM card at the SMS gateway provider’s site. You do not need to buy, set up and manage any equipment and write any program for receiving SMS. The SMS gateway provider may provide you a log report feature.
Hosting your SIM card by an SMS gateway provider generally involves an one-time setup fee and a monthly hosting fee. For shared phone number service, the SMS gateway provider will charge a monthly subscription fee or a per-SMS fee. Some SMS gateway providers do not state the price on their website, which means you have to contact their staff directly.
The 3rd Way: Get Access to the SMSC or SMS Gateway of a Mobile Network Operator through a Leased Line or the Internet
This way is for SMS applications that have a high incoming traffic. 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 receive SMS. The network operator may only allow a leased line connection to access its SMSC for security reasons.
- Receive SMS using an interface supported by the network operator.
For the first scenario, you have to discuss the details with the network operator’s staff. As you can imagine, signing an agreement with a network operator is not an inexpensive and easy solution, and network operators will not entertain you if you cannot bring them a big profit.
The second scenario is more common. Generally, a phone number is specified to your SMS application for receiving SMS messages. Whenever an SMS is received, the network operator will notify your SMS application through an interface such as HTTP/HTTPS, FTP, SMPP, email, etc. This is similar to what an SMS gateway provider does. We have talked about this before but we will mention it here once again for your convenience. Take HTTP as an example. You define an URL, say http://yourserver.com/incomingsms. Every time an SMS message is received, the SMS gateway will send a HTTP post/get request to the URL with the contents of the SMS as the parameters. For example, http://yourserver.com/incomingsms?sender=12345678&text=xxxx, where 12345678 is the sender’s mobile phone number and xxxx is the content of the SMS. Your server can handle the HTTP post/get in any web language like CGI, Perl, PHP, ASP, JSP, Java servlet, etc.
Using such incoming SMS service of a mobile network operator generally involves an one-time setup fee. The mobile network operator will charge you a monthly subscription fee or a per-SMS fee. To know the exact cost of the service, you have to discuss it with the mobile network operator’s staff.
Original Source : http://www.developershome.com/sms/howToReceiveSMSUsingPC.asp