# Decodificador de PDU SMPP.

- URL canónica: https://www.broadnet.me/es/tools/smpp-pdu-decoder
- Idioma: es
- Última actualización: 2026-10-21
- Editor: BroadNet (https://www.broadnet.me)
- Versión Markdown de la página, generada a partir de la página publicada.

SMPP v3.4 · funciona en tu navegador

Pega el hexadecimal de un PDU SMPP v3.4 para decodificar su cabecera de 16 bytes — command_length, command_id (con su nombre), command_status y sequence_number — y ver el diseño obligatorio de campos del cuerpo para submit_sm y deliver_sm. Nada sale de tu dispositivo.

16 bytes

Prueba un ejemplo

command_length

16 0x00000010

command_id

enquire_link 0x00000015

command_status

0x00000000

ESME_ROK — No error

sequence_number

1 0x00000001

Cuerpo (0 bytes tras la cabecera de 16 bytes)

PDU solo de cabecera — sin cuerpo (típico de enquire_link, unbind y la mayoría de los acuses _resp).

La respuesta breve

## ¿Qué es un PDU SMPP?

Un PDU (Unidad de Datos de Protocolo) es un único mensaje SMPP en el cable. Todo PDU —un bind, un submit_sm, un acuse de entrega, un enquire_link— comienza con la misma cabecera de 16 bytes de cuatro enteros de 32 bits big-endian: command_length (la longitud total en bytes incluyendo la cabecera), command_id (qué operación es), command_status (el resultado, que es 0 / ESME_ROK en una respuesta exitosa) y sequence_number (usado para emparejar una respuesta con su solicitud). Cualquier campo del cuerpo sigue a la cabecera.

### El diseño de la cabecera de 16 bytes

| Bytes | Campo | Significado |
|---|---|---|
| 0–3 | command_length | Longitud total del PDU en octetos, cabecera incluida. |
| 4–7 | command_id | Identifica la operación (p. ej. 0x00000004 = submit_sm). |
| 8–11 | command_status | Código de resultado; 0 = ESME_ROK. Solo significativo en respuestas. |
| 12–15 | sequence_number | Correlaciona una solicitud con su respuesta. |

### Campos del cuerpo submit_sm / deliver_sm

Después de la cabecera, un submit_sm o deliver_sm porta sus campos obligatorios en un orden fijo, opcionalmente seguidos de parámetros TLV (opcionales). Esta herramienta enumera el orden; no analiza por completo las cadenas C-Octet de longitud variable, porque sus límites dependen de los terminadores nulos y del campo sm_length.

| Campo | Tipo | Significado |
|---|---|---|
| service_type | C-Octet String | Indica el servicio de aplicación SMS (nulo = predeterminado). |
| source_addr_ton | Integer (1) | Tipo de número del remitente. |
| source_addr_npi | Integer (1) | Indicador del plan de numeración del remitente. |
| source_addr | C-Octet String | Dirección del originador del mensaje. |
| dest_addr_ton | Integer (1) | Tipo de número del destinatario. |
| dest_addr_npi | Integer (1) | Indicador del plan de numeración del destinatario. |
| destination_addr | C-Octet String | MSISDN / código corto de destino. |
| esm_class | Integer (1) | Modo y tipo de mensaje (p. ej. 0x04 = acuse de entrega). |
| protocol_id | Integer (1) | Identificador de protocolo (específico de la red). |
| priority_flag | Integer (1) | Nivel de prioridad del mensaje. |
| schedule_delivery_time | C-Octet String | Hora de entrega programada (nulo = inmediato). |
| validity_period | C-Octet String | Período de validez del mensaje (nulo = predeterminado). |
| registered_delivery | Integer (1) | Si se solicita un acuse de entrega (DLR). |
| replace_if_present_flag | Integer (1) | Reemplazar un mensaje existente si está presente. |
| data_coding | Integer (1) | Esquema de codificación (0 = GSM-7, 8 = UCS-2). |
| sm_default_msg_id | Integer (1) | Identificador de mensaje predefinido. |
| sm_length | Integer (1) | Longitud en octetos del campo short_message. |
| short_message | Octet String | La carga útil del mensaje (hasta 254 octetos). |

## Preguntas frecuentes

**¿Cuáles son los cuatro campos de la cabecera SMPP?**

Todo PDU SMPP comienza con una cabecera de 16 bytes de cuatro enteros de 32 bits big-endian: command_length (longitud total del PDU en octetos incluyendo la cabecera), command_id (la operación, como 0x00000004 para submit_sm), command_status (el código de resultado, 0 = ESME_ROK) y sequence_number (que correlaciona una respuesta con su solicitud original).

**¿Por qué command_status suele ser 0 en mis solicitudes?**

command_status solo es significativo en PDU de respuesta y generic_nack. En PDU de solicitud (submit_sm, bind, enquire_link) está reservado y debe establecerse en 0. Un valor distinto de cero en un _resp indica un error — por ejemplo 0x00000058 es ESME_RTHROTTLED.

**¿Los enteros de SMPP son big-endian?**

Sí. SMPP codifica los enteros multi-octeto en orden de bytes de red (big-endian, byte más significativo primero). Este decodificador lee cada campo de cabecera de 4 bytes como un entero sin signo de 32 bits big-endian.

**¿Esta herramienta decodifica el texto del mensaje?**

Decodifica la cabecera fija de 16 bytes y enumera el orden de campos del cuerpo para submit_sm y deliver_sm, pero no analiza el cuerpo de longitud variable en valores individuales. Las cadenas C-Octet terminan en nulo y la longitud de short_message se transporta en sm_length, así que un análisis completo del cuerpo depende de esos límites — esta herramienta se ciñe al diseño de cabecera basado en el estándar.

**¿Dónde puedo buscar un command_status que no reconozco?**

Usa la referencia de códigos de error de SMPP, que enumera cada valor command_status de SMPP v3.4 por su nombre hexadecimal y simbólico, con un significado en lenguaje sencillo y la causa y solución probables.

[Códigos de error de SMPP Busca cada valor command_status con causa y solución.](https://www.broadnet.me/es/tools/smpp-error-codes) [Decodificador de DLR SMPP Decodifica un acuse de entrega a partir de un PDU deliver_sm.](https://www.broadnet.me/es/tools/dlr-decoder) [Protocolo SMPP Cómo encajan los binds, las ventanas y los PDU.](https://www.broadnet.me/es/answers/smpp-protocol)

## ¿Necesitas un bind SMPP real?

BroadNet ofrece enlaces SMPP 3.4 directos junto con una API REST y webhooks de entrega en 200+ países. Habla con nuestro equipo sobre rendimiento y enrutamiento.

[Centro de desarrolladores](https://www.broadnet.me/es/developers) [Contactar con ventas](https://www.broadnet.me/es/contact)
