ESME_RINVSRCADR in SMPP
What is ESME_RINVSRCADR?
ESME_RINVSRCADR (Error Code: 0x0000000A) is an SMPP error indicating that the source address (sender ID) provided in the request is invalid or not permitted by the SMSC.
Possible Causes
- The
source_addr
field is empty or incorrectly formatted. - The sender ID is longer than the maximum allowed length (typically 11 characters for alphanumeric sender IDs).
- The sender ID contains unsupported characters.
- The sender ID is not registered or whitelisted on the SMSC.
- The sender ID type (
source_addr_ton
andsource_addr_npi
) is incorrect or not supported.
When Does It Happen?
This error occurs when submitting an SMPP PDU (such as submit_sm
) with an invalid or unsupported sender ID.
Example SMPP PDU Transaction
Incorrect submit_sm
PDU (Invalid Source Address)
0000002C (Length) 00000004 (Command ID for submit_sm) 00000000 (Command Status) 00000002 (Sequence Number) 00000000 (Service Type) 00 (Invalid source_addr_ton) 00 (Invalid source_addr_npi) 00000000 (Empty Source Address) 35363137 38363530 30303000 (Destination Address) 00 (Priority Flag) 01 (Registered Delivery Flag) 00000000 (Message Length) 48656C6C6F (Message: "Hello")
Response PDU (submit_sm_resp
) with ESME_RINVSRCADR
00000010 (Length) 80000004 (Command ID for submit_sm_resp) 0000000A (Command Status - ESME_RINVSRCADR) 00000002 (Sequence Number)
Issue: The source_addr
is empty, causing the SMSC to reject the request.
How to Solve It?
- Ensure that the
source_addr
(sender ID) is correctly formatted and within the allowed length. - Use a valid
source_addr_ton
andsource_addr_npi
: - For alphanumeric sender ID:
source_addr_ton = 5
,source_addr_npi = 0
- For numeric sender ID:
source_addr_ton = 1
,source_addr_npi = 1
- Verify with the SMSC provider whether the sender ID needs to be pre-approved.
- Check for any character restrictions enforced by the SMSC.
- Enable debugging logs to inspect the exact value being sent in the PDU.
If the issue persists, contact the SMSC provider to confirm sender ID requirements.