One of the most common reasons that you will receive a UNDELIV response from the Voxox gateway is because of a mismatched sender 'source_addr_ton' , 'source_addr_npi' , 'source_addr'
Here are the rules to follow
- If the source_addr is alphanumeric or non-numeric = TON is set to 5 and NPI to 0
- If the source_addr is a short code = TON is set to 3, and NPI is set to 0.
- If the source_addr starts with a “+” = TON is set to 1, and NPI is set to 1.
- If source_addr is blank = TON is set to 0 and NPI is set to 1
- If none of the above conditions is met = TON is set to 0 and NPI is set to 1
Why are these values important?
The SMPP specification defines the following TON and NPI values. You won't need to use most of these, but the spec does need to be followed in order to ensure reliable service
Possible TON values:
Unknown = 0
International = 1
National = 2
Network Specific = 3
Subscriber Number = 4
Alphanumeric = 5
Abbreviated = 6
Possible NPI values:
Unknown = 0
ISDN/telephone numbering plan (E163/E164) = 1
Data numbering plan (X.121) = 3
Telex numbering plan (F.69) = 4
Land Mobile (E.212) =6
National numbering plan = 8
Private numbering plan = 9
ERMES numbering plan (ETSI DE/PS 3 01-3) = 10
Internet (IP) = 13
WAP Client Id (to be defined by WAP Forum) = 18
Failed PDU example
Here is a configuration that will fail to send through our gateway. In the below, the TON value is telling us that the source_address is international and the NPI is telling us that its E.164 formatted. However, we receive a 6 digit number that is not E.164
source_addr_ton: 1 = 0x00000001
source_addr_npi: 1 = 0x00000001
The easiest way to ensure messages are reliably sent is to send a TON/NPI = 1 and ensure that the source_addr is an E.164 formatted number.