ESME_RINVSRCNPI in SMPP
What is ESME_RINVSRCNPI?
ESME_RINVSRCNPI (Error Code: 0x00000049) is an SMPP error indicating that the source NPI (Numbering Plan Indicator) value provided in the PDU is invalid or not supported by the SMSC.
Possible Causes
- The
source NPIfield contains an incorrect or unsupported value. - The SMSC does not recognize the specified
NPI. - The
source NPIdoes not match thesource TONconfiguration. - Using a reserved or undefined
NPIvalue.
When Does It Happen?
This error occurs when an ESME sends a submit_sm, deliver_sm, or similar PDU with an invalid source NPI value.
Example SMPP PDU Transaction
Incorrect submit_sm PDU (Invalid Source NPI)
0000002F (Length) 00000004 (Command ID for submit_sm) 00000000 (Command Status) 00000001 (Sequence Number) 00 (Service Type) 01 (Source Address TON - International) FF (Invalid Source Address NPI) 31323334 00 (Source Address: "1234") 01 (Destination Address TON) 01 (Destination Address NPI) 39383736 00 (Destination Address: "9876") 00 (ESM Class) 00 (Protocol ID) 00 (Priority Flag) 00000000 (Schedule Delivery Time - Not Set) 00000000 (Validity Period - Not Set) 00 (Registered Delivery) 00 (Replace If Present Flag) 00 (Sm Default Msg ID) 0005 (Message Length) 48656C6C 6F (Message: "Hello")
Response PDU (submit_sm_resp) with ESME_RINVSRCNPI
00000010 (Length) 80000004 (Command ID for submit_sm_resp) 00000049 (Command Status - ESME_RINVSRCNPI) 00000001 (Sequence Number)
Issue: The source NPI field is set to an invalid value (0xFF), which is not recognized by the SMSC.
How to Solve It?
- Use a valid
source NPIvalue based on SMPP specifications: 0x00- Unknown0x01- ISDN (E.164)0x03- Data (X.121)0x04- Telex (F.69)0x06- Land Mobile (E.212)0x08- National0x09- Private0x0A- ERMES0x0E- Internet (IP)0x12- WAP Client ID- Confirm with the SMSC which
source NPIvalues are supported. - Ensure the
source NPIis correctly paired with thesource TON. - Review and correct the SMPP PDU construction before sending.
If the issue persists, enable debug logs and contact the SMSC provider for further troubleshooting.