Standard Optional Parameters (TLVs)

Only the standard optional parameters listed in the PDU details are supported; any other TLV will be ignored (so sending unsupported TLVs will not break the SMSC).

The standard optional parameters are implemented as per SMPP specification 3.4.

Below are more details on the network_error_code and message_state optional parameters as implemented by the Clickatell SMSC.

 

Network Error Code

The network_error_code parameter is used to indicate the actual Clickatell error code for a delivery failure. The network_error_code field is only available for non-successful delivery receipts. It’s omitted when delivery was successful.

Field

Size Octets

Type

Description

Parameter Tag

2

Integer

Always 0x0423  (1059 decimal)

Length

2

Integer

Always 0x0003  (3 decimal)

Value

3

Octet

String

Sub-Field

Size Octets

Type

Network Type

1

Integer

Error Code

2

Integer

The first octet indicates the network type.  For Clickatell this will always be 0x03 (3 decimal).

The remaining two octets specify the Clickatell error code. For instance, error code 1 will be encoded as 0x0001, error code 11 will be encoded as 0x000B, and error code 999 will be encoded as 0x03E7.

This is the list of network error codes that will be used:

Code

Description

1

Unknown error

2

Unknown subscriber

3

Teleservice not provisioned

4

Equipment protocol error

5

Permanent network error

6

Rejected by network

7

Delist

8

Subscriber unavailable, message expired

9

Temp network error

10

Subscriber portability error

11

Subscriber roaming error

12

Call barred

13

Memory capacity exceeded

999

Undefined

 

 

Message State

The message_state optional parameter is used in the deliver_sm PDU to indicate to the ESME the final message state.

Clickatell will report all successful delivery receipts as DELIVERED (value = 2), and all failed delivery receipts as either UNDELIVERABLE (value = 5) or REJECTED (value = 8).

Field

Size Octets

Type

Description

Parameter tag

2

Integer

Always 0x0427  (1063 decimal)

Length

2

Integer

Always 0x0001  (1 decimal)

Value

1

Integer

Message state

Value

Description

DELIVERED

2

Message is delivered to destination

UNDELIVERABLE

5

Message is undeliverable

REJECTED

8

Message is in a rejected state