link mobility

SMSC SMPP User Guide

Modified: 2025-06-24

Version: 1.7

Author: Kenny Colliander Nordin, KCN

1 Index

2 Change history

Rev Date By Changes from previous release
1.0 2010-03-16 KCN Created
1.1 2019-06-11 TPE Updated LINK logos
1.2 2019-09-27 PNI Added reference to SMPP 3.4 specification
1.3 2019-10-31 EP Observation about the validity_period tag
1.4 2020-08-28 KCN Added information regarding supported TLS versions
1.5 2022-01-10 KCN Added additional information regarding delivery reports
1.6 2025-06-03 GM Updated information regarding TLS 1.3
1.7 2025-06-24 AK Added quota

3 Introduction

LINK Mobility has been a SMS distributor since 2001 and has much experience in working with both operators and connection aggregators. This platform is designed to handle large traffic volumes, maintain a high availability and make it easy to route traffic via multiple connections.

This document describes the SMPP interface to the SMSC-platform and which parameters and commands that are required and which parameters are supported.

This document will not handle specific use cases as concatenated messages, WAP-push, Flash SMS, etc. More information about those cases can be provided by contacting support.

4 Supported commands

LINK Mobility's server should be treated as SMPP 3.4. The official specification can be found at https://smpp.org/SMPP_v3_4_Issue1_2.pdf. All methods are not supported, and all differences are specified below.

4.1 Bind

The following bind commands are supported:

Required parameters:

Optional parameters:

Unsupported parameters:

4.2 Unbind

The unbind command is supported.

The enquire link command is supported and should be called every 60 seconds.

4.4 Submit

The submit method should be used for delivering messages.

Required parameters:

Unsupported parameters:

Note that the payload tag is not supported and only one SMS may be delivered per call and it is recommended that the validity_period tag has a value of 15 minutes long at least.

The following TON and NPI should be used when sending messages using submit command.

4.4.1.1 Source

The following TON and NPI combinations are supported for source address. All other combinations will be treated as invalid. The default TON from bind command will be used if TON is set to Unknown (0). The default NPI from bind command will be used if NPI is set to Unknown (0).

TON NPI Description
Alphanumeric (5) Unknown (0)
ISDN (1)
Will be treated as Alphanumeric sender text
International (1) Unknown (0)
ISDN (1)
Will be treated as MSISDN
Network specific (3) Unknown (0)
ISDN (1)
Will be treated as country specific short number.
Subscriber number (4) National (2)
Abbreviated (6)
4.4.1.2 Destination

The following TON and NPI combinations are supported for destination address. All other combinations will be treated as invalid. The default TON from bind command will be used if TON is set to Unknown (0). The default NPI from bind command will be used if NPI is set to Unknown (0).

TON NPI Description
International (1) Unknown (0)
ISDN (1)
Will be treated as MSISDN

4.4.2 Supported encodings

The following encodings are supported. X may contain any value.

DCS Encoding
0xX0 Default GSM Alphabet with extension
0xX2 8-bit binary
0xX8 UCS2 (ISO-10646-UCS-2)

5 Quota

5.1 Quota Overview

A quota defines the maximum number of SMS messages that can be sent within a specified time interval (such as per day, week, month, or indefinitely). Each quota is uniquely identified by a quotaId (UUID) and is reset according to the customer's time zone. Quotas can be assigned at the country, region, or default level through a QuotaProfile. Quota can also be dynamically assigned using QuotaMapping. This maps a parentQuotaId (UUID) and a unique quotaKey (e.g., sender or user) to a specific quotaId.

A quota is set in accordance with your local support, your assigned account manager or by default if nothing is specified.

5.2 Status 106 – Quota Exceeded

An SMS message may be blocked with status code 106 ("quota exceeded") when:

In these cases, the system prevents further message processing to enforce customer or destination-based limits and avoid misuse.

6 Delivery report

Only none or final delivery with successful/failure result are supported.

Format on delivery report:

id: xxxxxxxxxxxxxxxx sub:000 dlvrd:000 submit date: yyMMddHHmm done date: yyMMddHHmm stat: <status> err: <error code> text:

Available values in status:

"sub" and "dlvrd” fields will always be set to 000, and “text” field will always be empty.

See chapter Error codes for values for the “err” field.

6.1 Extended delivery report format

Extended information in delivery reports may be requested in contact with your sales representative.

Format on delivery report:

7 Supported TLS versions

TLS 1.2 or TLS 1.3 is required for all TLS connections over SMPP.

Support for TLS 1.0 and 1.1 is discontinued since 2020-11-15. Versions 1.0 and 1.1 of TLS are older protocols that have been deprecated and are considered as security risks in the Internet community.

LINK strongly recommend to use TLS if unencrypted SMPP connections are being used today. Unencrypted SMPP connections are deprecated as of 2020-09-01 by LINK, and will be removed in the future. Date for unencrypted connections removal is not yet decided.

Connections towards the SMPP server for TLS is at port 3601 instead of unencrypted at port 3600.

You may still use TLS even if your SMPP implementation doesn't support TLS using stunnel, see https://www.stunnel.org/

8 Error codes

The following error codes may be replied in the err field if the field is enabled.

Error code Description
0 Unknown error
1 Temporary routing error
2 Permanent routing error
3 Maximum throttling exceeded
4 Timeout
5 Operator unknown error
6 Operator error
100 Service not found
101 User not found
102 Account not found
103 Invalid password
104 Configuration error
105 Internal error
106 Quota exceeded
200 OK
1000 Sent
1001 Delivered
1002 Expired
1003 Deleted
1004 Mobile full
1005 Queued
1006 Not delivered
1007 Delivered, charge delayed
1008 Charged, message not sent
1009 Charged, message not delivered
1010 Expired, absence of operator delivery report
1011 Charged, message sent (to operator)
1012 Remotely queued
1013 Message sent to operator, charging delayed
2000 Invalid source number
2001 Short number is not supported as source
2002 Alpha is not supported as source
2003 MSISDN is not supported as source number
2100 Short number is not supported as destination
2101 Alpha is not supported as destination
2102 MSISDN is not supported as destination
2103 Operation blocked
2104 Unknown subscriber
2105 Destination blocked
2106 Number error
2107 Destination temporarily blocked
2108 Invalid destination
2200 Charging error
2201 Subscriber has low balance
2202 Subscriber barred for overcharged (premium) messages
2203 Subscriber too young (for this particular content)
2204 Prepaid subscriber not allowed
2205 Service rejected by subscriber
2206 Subscriber not registered in payment system
2207 Subscriber has reached max balance
2208 End user confirmation needed
2300 Refunded
2301 Could not refund due to illegal or missing MSISDN
2302 Could not refund due to missing messageld
2303 Queued for refund
2304 Refund timeout
2305 Refund failure
3000 GSM encoding is not supported
3001 UCS2 encoding is not supported
3002 Binary encoding is not supported
4000 Delivery report is not supported
4001 Invalid message content
4002 Invalid tariff
4003 Invalid user data
4004 Invalid user data header
4005 Invalid data coding
4006 Invalid VAT
4007 Unsupported content for destination
Models: SMS API SMPP API MS Scheduler API, SMS API SMPP API, MS Scheduler API, Scheduler API, API

File Info : application/pdf, 8 Pages, 677.24KB

PDF preview unavailable. Download the PDF instead.

smsc-smpp-user-guide-1-7

References

Microsoft: Print To PDF

Related Documents

Preview LINK Mobility SMS REST API: MT and Delivery Reports Guide
Comprehensive guide to the LINK Mobility SMS REST API, covering Message Types (MT) and Delivery Reports (DLR). Details API functionalities, parameters, error codes, and examples for sending SMS messages.