11.3. The 3rd Way:
Using a Computer to Receive SMS Messages through a Connection to the
SMS Gateway of an SMS Service Provider
Another
way to receive SMS messages using a computer is through a connection
to the SMS gateway of an SMS service provider. SMS service providers
generally support two kinds of solution:
SIM
hosting -- The SMS
service provider hosts a SIM card for you. All SMS messages sent to
the mobile phone number of the SIM card will be forwarded to your
system using a protocol / interface supported by the SMS gateway of
the SMS service provider.
Shared
phone number -- The SMS service provider provides you a phone
number that is shared by its customers for receiving SMS messages.
You have to specify one or more keywords to associate with your SMS
application. If an SMS message is received and its content begins
with a keyword specified by you, it will be forwarded to your system
using a protocol / interface supported by the SMS gateway of the SMS
service provider.
Some
SMS service providers also provide SMS messaging solutions that are
customized to your needs. For example, if you need to receive SMS
messages from users in a few countries, an SMS service provider may
help you open dedicated phone numbers in those countries and forward
the received SMS messages to you in a unified way. To use such SMS
messaging services, you have to contact the SMS service provider to
discuss the details.
11.3.1. SIM
Hosting
In
this approach, an SMS service provider hosts a SIM card for
you. The SIM card's mobile phone number will serve as a dedicated
phone number of your SMS application. To use the service, you mail
your SIM card to the SMS service provider. Later if you end the
service, the SMS service provider will mail the SIM card back to you.
The SIM card will be put into a GSM/GPRS modem, which is connected to
an SMS gateway. The SMS gateway will forward all received SMS
messages to your computer using a certain protocol / interface. For
example, HTTP, HTTPS, XML over HTTP/HTTPS, SMTP (SMS to email), SMPP,
etc.
Like
receiving SMS messages using your own mobile phone or GSM/GPRS modem,
SIM hosting has a major weakness -- it cannot handle a large amount
of SMS traffic. The advantage of SIM hosting is that you do not need
to buy, set up and manage the necessary equipment. Also, you do not
need to write any code to control the receiving of SMS messages from
a GSM/GPRS modem via low-level AT commands, which means you can
concentrate on the business logic of your SMS application. The SMS
service provider may provide you a detail log of the incoming SMS
messages.
11.3.1.1. Cost of
SIM Hosting Service
SIM
hosting service typically involves a one-time setup fee and a monthly
hosting fee. Usually there is no per-message cost. Some SMS service
providers do not state the cost of SIM hosting service on their
website, which means you have to contact their staff directly.
If
the SMS service provider is located overseas, the SIM card needs to
support foreign network roaming. SMS roaming fees may be charged by
the wireless carrier that provides you the SIM card.
11.3.2. Shared
Phone Number
In
this approach, the SMS service provider rents dedicated phone numbers
from wireless carriers. Each phone number will then be shared by a
number of the SMS service provider's customers for receiving SMS
messages. Since the phone number is provided by a wireless carrier
directly (not through a SIM card) and the SMS service provider has a
high speed connection to the SMSC or SMS gateway of the wireless
carrier, the SMS service provider is capable of handling a large
amount of SMS messages with the phone number. As a result, the users
of such shared phone number service can enjoy a higher SMS
transmission rate than using SIM hosting services or using their own
wireless modem. The cost of shared phone number service is less
expensive than renting your own dedicated phone number from a
wireless carrier. A detail log of the received SMS messages is
sometimes provided by SMS service providers.
Like
using SIM hosting service, using shared phone number service has the
advantage that you do not need to buy, set up and manage any
equipment (e.g. GSM / GPRS modems) and write any low-level code for
receiving SMS messages. Hence, an SMS application developer can
concentrate on the business logic of his/her SMS messaging
application.
The
weakness of shared phone number service is that the bandwidth is
shared, i.e. the performance drops if the number of users sharing the
phone number increases, or if the amount of incoming SMS traffic
required by other users increases.
11.3.2.1. Registering
Keywords
Since
multiple users share a single phone number, when the SMS gateway of
the SMS service provider receives an SMS message, it needs a way to
determine which user to forward the SMS message to. SMS service
providers' engineers come up with a solution like this: First, a user
registers one or more keywords to associate with his/her SMS
messaging application. Later when the SMS gateway receives an SMS
message that begins with one of the keywords, it will forward the SMS
message to that SMS messaging application.
Here
is an example for illustration. Suppose you want to develop an SMS
messaging application that provides free ringtone download service. A
user will be able to perform two functions: listing the free
ringtones that are available and requesting a ringtone to be sent to
a mobile phone.
To
receive SMS messages from users, you can subscribe to the shared
phone number service of an SMS service provider and register two
keywords, list and download, to be associated with your
SMS messaging application.
To
request the list of free ringtones that are available on your server,
the user can send the following SMS text message to the shared phone
number:
list
When
the SMS gateway of the SMS service provider receives the above SMS
text message, it parses its content and extracts the keyword list.
It then searches a database to find out which SMS messaging
application is associated with the keyword list.
As your SMS messaging application is
associated with the keyword list,
the SMS text message will be forwarded to your SMS messaging
application.
The
keyword list indicates
that the user wants the list of free ringtones that are available on
your server. Hence, your SMS messaging application should return an
SMS text message that contains something like this:
Free
ringtones available: 1. Ringtone ABC 2. Ringtone CDEF 3.
Ringtone X 4. Ringtone Y
To
download the second ringtone, the user can send an SMS text message
that looks like this to the shared phone number:
download
2
Since
the keyword download is also
associated with your SMS messaging application, the SMS gateway will
forward the above SMS text message to your SMS messaging application.
This time the keyword download
indicates that the user wants to download a ringtone. Your SMS
messaging application should encode the second ringtone in an SMS
message and send it to the user.
11.3.2.2. Cost of
Shared Phone Number Service
Shared
phone number service typically involves a monthly subscription fee, a
per-message fee and/or a per-keyword fee. A few SMS service providers
also charge a one-time setup fee. Some SMS service providers do not
state the cost of shared phone number service on their web site,
which means you have to contact their staff directly.
|
Feedback Form (ExpandCollapse)
|
|