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.

More information