# Decodificatore di PDU SMPP.

- URL canonico: https://www.broadnet.me/it/tools/smpp-pdu-decoder
- Lingua: it
- Ultimo aggiornamento: 2026-10-21
- Editore: BroadNet (https://www.broadnet.me)
- Versione Markdown della pagina, generata dalla pagina pubblicata.

SMPP v3.4 · funziona nel tuo browser

Incolla l'esadecimale di un PDU SMPP v3.4 per decodificare il suo header di 16 byte — command_length, command_id (con il suo nome), command_status e sequence_number — e vedere il layout obbligatorio dei campi del corpo per submit_sm e deliver_sm. Nulla lascia il tuo dispositivo.

16 byte

Prova un esempio

command_length

16 0x00000010

command_id

enquire_link 0x00000015

command_status

0x00000000

ESME_ROK — No error

sequence_number

1 0x00000001

Corpo (0 byte dopo l'header di 16 byte)

PDU di sola intestazione — nessun corpo (tipico di enquire_link, unbind e della maggior parte delle conferme _resp).

La risposta breve

## Cos'è un PDU SMPP?

Un PDU (Protocol Data Unit) è un singolo messaggio SMPP sul canale. Ogni PDU — un bind, un submit_sm, una ricevuta di consegna, un enquire_link — inizia con lo stesso header di 16 byte composto da quattro interi a 32 bit big-endian: command_length (la lunghezza totale in byte, header incluso), command_id (quale operazione è), command_status (il risultato, che è 0 / ESME_ROK in una risposta riuscita) e sequence_number (usato per abbinare una risposta alla sua richiesta). Eventuali campi del corpo seguono l'header.

### Il layout dell'header di 16 byte

| Byte | Campo | Significato |
|---|---|---|
| 0–3 | command_length | Lunghezza totale del PDU in ottetti, header incluso. |
| 4–7 | command_id | Identifica l'operazione (es. 0x00000004 = submit_sm). |
| 8–11 | command_status | Codice di risultato; 0 = ESME_ROK. Significativo solo nelle risposte. |
| 12–15 | sequence_number | Correla una richiesta con la sua risposta. |

### Campi del corpo submit_sm / deliver_sm

Dopo l'header, un submit_sm o deliver_sm porta i suoi campi obbligatori in un ordine fisso, opzionalmente seguiti da parametri TLV (opzionali). Questo strumento elenca l'ordine; non analizza completamente le stringhe C-Octet di lunghezza variabile, poiché i loro limiti dipendono dai terminatori nulli e dal campo sm_length.

| Campo | Tipo | Significato |
|---|---|---|
| service_type | C-Octet String | Indica il servizio applicativo SMS (nullo = predefinito). |
| source_addr_ton | Integer (1) | Tipo di numero del mittente. |
| source_addr_npi | Integer (1) | Indicatore del piano di numerazione del mittente. |
| source_addr | C-Octet String | Indirizzo del mittente del messaggio. |
| dest_addr_ton | Integer (1) | Tipo di numero del destinatario. |
| dest_addr_npi | Integer (1) | Indicatore del piano di numerazione del destinatario. |
| destination_addr | C-Octet String | MSISDN / codice breve di destinazione. |
| esm_class | Integer (1) | Modalità e tipo di messaggio (es. 0x04 = ricevuta di consegna). |
| protocol_id | Integer (1) | Identificatore di protocollo (specifico della rete). |
| priority_flag | Integer (1) | Livello di priorità del messaggio. |
| schedule_delivery_time | C-Octet String | Ora di consegna programmata (nullo = immediato). |
| validity_period | C-Octet String | Periodo di validità del messaggio (nullo = predefinito). |
| registered_delivery | Integer (1) | Se è richiesta una ricevuta di consegna (DLR). |
| replace_if_present_flag | Integer (1) | Sostituire un messaggio esistente se presente. |
| data_coding | Integer (1) | Schema di codifica (0 = GSM-7, 8 = UCS-2). |
| sm_default_msg_id | Integer (1) | Identificatore di messaggio predefinito. |
| sm_length | Integer (1) | Lunghezza in ottetti del campo short_message. |
| short_message | Octet String | Il payload del messaggio (fino a 254 ottetti). |

## Domande frequenti

**Quali sono i quattro campi dell'header SMPP?**

Ogni PDU SMPP inizia con un header di 16 byte composto da quattro interi a 32 bit big-endian: command_length (lunghezza totale del PDU in ottetti, header incluso), command_id (l'operazione, come 0x00000004 per submit_sm), command_status (il codice di risultato, 0 = ESME_ROK) e sequence_number (che correla una risposta con la sua richiesta originaria).

**Perché command_status è solitamente 0 nelle mie richieste?**

command_status è significativo solo nei PDU di risposta e generic_nack. Nei PDU di richiesta (submit_sm, bind, enquire_link) è riservato e deve essere impostato a 0. Un valore diverso da zero in un _resp indica un errore — ad esempio 0x00000058 è ESME_RTHROTTLED.

**Gli interi SMPP sono big-endian?**

Sì. SMPP codifica gli interi multi-ottetto nell'ordine dei byte di rete (big-endian, byte più significativo per primo). Questo decodificatore legge ogni campo header di 4 byte come un intero senza segno a 32 bit big-endian.

**Questo strumento decodifica il testo del messaggio?**

Decodifica l'header fisso di 16 byte ed elenca l'ordine dei campi del corpo per submit_sm e deliver_sm, ma non analizza completamente il corpo di lunghezza variabile in valori singoli. Le stringhe C-Octet terminano con null e la lunghezza di short_message è portata in sm_length, quindi un'analisi completa del corpo dipende da questi limiti — questo strumento si attiene al layout dell'header basato sullo standard.

**Dove posso cercare un command_status che non riconosco?**

Usa il riferimento dei codici di errore SMPP, che elenca ogni valore command_status di SMPP v3.4 per nome esadecimale e simbolico con un significato in chiaro e la probabile causa e soluzione.

[Codici di errore SMPP Cerca ogni valore command_status con causa e soluzione.](https://www.broadnet.me/it/tools/smpp-error-codes) [Decodificatore DLR SMPP Decodifica una ricevuta di consegna da un PDU deliver_sm.](https://www.broadnet.me/it/tools/dlr-decoder) [Protocollo SMPP Come si incastrano bind, finestre e PDU.](https://www.broadnet.me/it/answers/smpp-protocol)

## Hai bisogno di un vero bind SMPP?

BroadNet offre bind SMPP 3.4 diretti insieme a un'API REST e webhook di consegna in 200+ paesi. Parla con il nostro team di throughput e instradamento.

[Area sviluppatori](https://www.broadnet.me/it/developers) [Contatta le vendite](https://www.broadnet.me/it/contact)
