ESME_RINVSRCADDRSUBUNIT in SMPP

What is ESME_RINVSRCADDRSUBUNIT?

ESME_RINVSRCADDRSUBUNIT (Error Code: 0x000000C6) indicates that the source address subunit value specified in the SMPP PDU is invalid or not supported by the SMSC.

Possible Causes

  • An incorrect or unsupported source address subunit value is used in the submit_sm PDU.
  • The SMSC does not recognize the specified subunit type.
  • Incorrect formatting or encoding of the source address subunit field.

When Does It Happen?

This error occurs when an ESME submits a message with an invalid or unsupported source address subunit value in the submit_sm PDU.

Example SMPP PDU Transaction

Request PDU (submit_sm) Sent by ESME

00000034 (Length)
00000004 (Command ID for submit_sm)
00000000 (Command Status)
00000001 (Sequence Number)
00 (Service Type - Default)
01 (Source Address TON - International)
01 (Source Address NPI - ISDN)
31323334 00 (Source Address: "1234")
01 (Destination Address TON - International)
01 (Destination Address NPI - ISDN)
39383736 00 (Destination Address: "9876")
00 (ESM Class)
00 (Protocol ID)
00 (Data Coding Scheme)
00 (Priority Flag)
00000000 (Schedule Delivery Time - Not Set)
00000000 (Validity Period - Not Set)
00 (Replace If Present Flag)
C6 (Source Address Subunit - Invalid Value)  <-- Incorrect Subunit
00 (Sm Default Msg ID)
0005 (Message Length)
48656C6C 6F (Message: "Hello")

Response PDU (submit_sm_resp) Indicating ESME_RINVSRCADDRSUBUNIT

00000010 (Length)
80000004 (Command ID for submit_sm_resp)
000000C6 (Command Status - ESME_RINVSRCADDRSUBUNIT)
00000001 (Sequence Number)

How to Solve It?

  • Ensure that the source address subunit field is correctly formatted and within valid ranges.
  • Check with the SMSC provider for supported subunit values.
  • Use a standard value or omit the field if it is not required.
  • Test with different values to determine a valid configuration.

To resolve this issue, confirm the correct source address subunit format and ensure compatibility with the SMSC.

More information