Introduction to SMPP
SMPP stands for ‘Short Message Peer-to-Peer’. It’s a communication protocol to send SMS messages directly to an SMSC over the internet. An SMSC, or SMS Center, is a party that handles or routes SMS messages. An SMSC can be an SMS provider or they can be an aggregator service. The aggregator server just routes SMS messages to different providers while providing a way for businesses to connect to them.
The SMPP protocol is mostly used when large volumes are involved. If you are a small business sending or receiving more that about 500 SMS / month SMPP is likely to be the most economical way to send SMS for you.
Find a list of current SMPP SMS providers here.
Two other technologies are competing with SMPP:
- The GSM modem. This is an excellent way to send low to medium SMS volumes.
- HTTP. This is another good way to sent large volumes but it there is no standard and receiving usually involves setting up your own server.
The SMPP protocol is usually the preferred method because of it’s speed, reliability and because it fully supports the whole spectrum of what is possible with SMS messages.
In recent years most SMPP providers and SMPP client libraries (such as the SMS Server and the SMS Component) are supporting TLS.
TLS, or Transport Layer Security is a security protocol that is used to secure many well known and commonly used internet protocols such as HTTP (web browsing) but also SMTP (email sending), IMAP (email receiving) and many others.
Before TLS became the de facto standard way of securing SMPP connections most providers used a combination of VPN (Virtual Private Networks) and IP white-lists. The IP white list would ensure that only known IP addresses could connect to the SMSC. The VPN would be a way to create a custom network between you and the provider that is isolated from the rest of the internet.
SMPP is a standard protocol. The standard has known 3 different version:
- Version 3.3 Which is the first version that was in widespread use.
- Version 3.4 This is the most common version of SMPP. It added extensibility through TLV’s (Tag Length Value) as a way to add custom data to SMPP packages.
- Version 5.0 Which adds more advanced throttling options. This version is not common.
You can find the full version of the SMPP 3.4 specification here.