ESME_RINVTLVLEN u SMPP-u
Što je ESME_RINVTLVLEN?
ESME_RINVTLVLEN (Kod greške: 0x000000C2) je SMPP greška koja označava da Tag-Length-Value (TLV) parametar u zahtjevu ima nevažeću duljinu, što znači da navedena duljina ne odgovara stvarnoj duljini podataka.
Mogući uzroci
- Polje duljine TLV-a ne odgovara očekivanoj veličini za dani TLV tag.
- Navedena duljina je kraća ili duža od onoga što zahtijeva SMPP specifikacija.
- TLV struktura je oštećena ili neispravno oblikovana.
- Greške u kodiranju TLV polja.
Kada se događa?
Ova se greška događa kada ESME pošalje SMPP zahtjev koji sadrži TLV parametar u kojem polje duljine ne odgovara točno veličini stvarne vrijednosti.
Primjer SMPP PDU transakcije
Zahtjev PDU (submit_sm
) poslan od ESME s nevažećom TLV duljinom
00000040 (Duljina) 00000004 (ID naredbe za submit_sm) 00000000 (Status naredbe) 00000001 (Redni broj) 00 (Vrsta usluge) 01 (TON izvorne adrese - Međunarodna) 01 (NPI izvorne adrese - ISDN) 31323334 00 (Izvorna adresa: "1234") 01 (TON odredišne adrese - Međunarodna) 01 (NPI odredišne adrese - ISDN) 39383736 00 (Odredišna adresa: "9876") 00 (ESM klasa) 00 (ID protokola) 00 (Zastavica prioriteta) 00000000 (Vrijeme isporuke - Nije postavljeno) 00000000 (Valjanost razdoblja - Nije postavljeno) 00 (Zastavica zamjene ako postoji) 00 (Zadani ID poruke) 0005 (Duljina poruke) 48656C6C 6F (Poruka: "Hello") 0421 0004 01 (Nevažeći TLV: Navedena duljina 4, stvarni podaci 1 bajt)
Odgovor PDU (submit_sm_resp
) s ESME_RINVTLVLEN
00000010 (Duljina) 80000004 (ID naredbe za submit_sm_resp) 000000C2 (Status naredbe - ESME_RINVTLVLEN) 00000001 (Redni broj)
Problem: TLV (Tag 0x0421) navodi duljinu od 4 bajta, ali stvarna vrijednost je samo 1 bajt.
Kako to riješiti?
- Provjerite SMPP specifikaciju kako biste potvrdili točne zahtjeve za duljinu TLV-a.
- Osigurajte da polje duljine točno odražava stvarnu veličinu podataka.
- Validirajte TLV strukturu prije slanja zahtjeva.
- Koristite SMPP simulator ili analizator paketa za pregled PDU strukture.
- Uklonite ili ispravite problematični TLV i testirajte ponovno.
Ispravljanje polja duljine TLV-a kako bi odgovaralo stvarnoj veličini vrijednosti riješit će ovaj problem.