10.2.3. Sending SMS Messages Using a Protocol / Interface Supported by an SMSC or SMS Gateway

After setting up an account with a wireless carrier or an SMS service provider, you can start sending SMS messages using a protocol / interface supported by the SMSC or SMS gateway. To communicate with an SMSC, an SMSC protocol is required. Most of these SMSC protocols are proprietary to the company that developed the SMSC. One widely used SMSC protocol is SMPP (Short Message Peer to Peer). It was originally a proprietary SMSC protocol created by Logica (an SMSC vendor). Now SMPP is an open SMSC protocol whose development is controlled by a non-profit organization SMS Forum. The following table lists some of the SMSC protocols and the SMSC vendors who develop the protocols:

SMSC vendor

SMSC protocol

CMG (CMG and Logica have merged into LogicaCMG.)

EMI (External Machine Interface)

UCP (Universal Computer Protocol)

Logica (CMG and Logica have merged into LogicaCMG.)

(Now the SMS Forum is responsible for the development of SMPP.)

SMPP (Short Message Peer to Peer)


CIMD (Computer Interface to Message Distribution)

SEMA Group (Now Airwide Solutions)

OIS (Open Interface Specification)


SMS gateways of SMS service providers and wireless carriers very often support one or more of the following protocols / interfaces: HTTP, HTTPS (HTTP + SSL encryption), XML over HTTP / HTTPS, SMTP (email to SMS), FTP. Some also support the SMPP protocol, which is usually used by advanced users. SMSC protocols other than SMPP are not commonly supported.

It is very easy to send SMS messages if you use a simple protocol like HTTP / HTTPS. Here is an example. To send an SMS message "It is easy to send text messages" to the mobile phone number 61234567, you submit an HTTP GET to the SMS gateway using an URL that looks something like this:


In the above URL:

  • "smsgateway.company123.com" is the host name of the SMS gateway that the SMS text message should be sent to.

  • "sendsms" is the file name of the CGI program that will be executed on the SMS gateway.

  • "account=account123" is used to assign the value account123 to the account parameter. The account parameter specifies which account that the cost of the SMS text message should be deducted from.

  • "password=password123" is used to assign the value password123 to the password parameter. The password parameter specifies the password of the account.

  • "destination=61234567" is used to assign the value 61234567 to the destination parameter. The destination parameter specifies the recipient's mobile phone number.

  • "textmessage=It+is+easy+to+send+text+messages" is used to assign the value It is easy to send text messages to the textmessage parameter. The textmessage parameter specifies the SMS text message to be sent. There exists some "+" characters because the space character is a special character and it should be escaped if it appears in an URL. The escaped character of the space character is the "+" character.

After receiving your HTTP request, the SMS gateway will forward your SMS text message towards the recipient. The SMS gateway will then send back an HTTP response that contains a return value. The return value indicates whether there are any errors. For example, a certain SMS gateway may use the return value 0 to indicate that there is no error, the return value 1 to indicate the error "The account does not have enough credits", the return value 2 to indicate the error "The SMS message is too long", etc.

Note that the parameters that can be passed in an HTTP request and the return values varies between SMS gateways of different SMS service providers and wireless carriers. To send the same SMS message "It is easy to send text messages" to the same mobile phone number 61234567 but with a different SMS service provider, the URL to be used may become:


Also, note that data transmitted over the Internet using the HTTP protocol is not secure. This means other people can read your account name and password you included in the above URL. To send data securely, you should use the HTTPS protocol instead of HTTP (i.e. change "http" at the beginning of the above URL to "https"), like this:


Previous Page Page 13 of 65 Next Page

Contents at a Glance (Click Here for Full Table of Contents)
Print this Web Page | | Back to Top

Feedback Form (Expand)

What do you think about this web page?

SMS Tutorial - Table of Contents SMS Tutorial - Contents at a Glance Preferences - Light mode / Dark mode Preferences - Do Not Show Ads Previous Page Next Page