ESME_RINVESMCLASS in SMPP

What is ESME_RINVESMCLASS?

ESME_RINVESMCLASS (Error Code: 0x00000043) is an SMPP error indicating that the esm_class field in the PDU contains an invalid or unsupported value.

Possible Causes

  • The esm_class value is outside the valid range.
  • An unsupported messaging mode, message type, or feature flag is set.
  • The SMSC does not support the requested esm_class value.
  • Invalid flag combinations are used in the esm_class field.

When Does It Happen?

This error occurs when sending a submit_sm or deliver_sm PDU with an incorrect esm_class value.

Example SMPP PDU Transaction

Incorrect submit_sm PDU (Invalid ESM Class)

0000002F (Length)
00000004 (Command ID for submit_sm)
00000000 (Command Status)
00000001 (Sequence Number)
00 (Service Type)
01 (Source Address TON)
01 (Source Address NPI)
31323334 00 (Source Address: "1234")
FF (Invalid 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_RINVESMCLASS

00000010 (Length)
80000004 (Command ID for submit_sm_resp)
00000043 (Command Status - ESME_RINVESMCLASS)
00000001 (Sequence Number)

Issue: The esm_class field is set to an invalid value (0xFF), which is not recognized by the SMSC.

How to Solve It?

  • Use a valid esm_class value based on SMPP specifications.
  • Ensure that messaging mode and type flags are correctly set.
  • Check if the SMSC supports the requested esm_class features.
  • Refer to the SMPP documentation for valid esm_class flag combinations.
  • Enable debugging logs to inspect the exact values being sent in the PDU.

If the issue persists, contact the SMSC provider to confirm supported esm_class values and resolve configuration issues.

More information