ESME_RINVTLVLEN v SMPP
Co je ESME_RINVTLVLEN?
ESME_RINVTLVLEN (Chybový kód: 0x000000C2) je chyba v SMPP, která indikuje, že parametr Tag-Length-Value (TLV) v požadavku má neplatnou délku, což znamená, že zadaná délka neodpovídá skutečné délce dat.
Možné příčiny
- Pole délky TLV neodpovídá očekávané velikosti pro daný TLV tag.
- Zadaná délka je kratší nebo delší, než vyžaduje specifikace SMPP.
- Struktura TLV je poškozena nebo chybně formátována.
- Chyby v kódování pole TLV.
Kdy k tomu dochází?
Tato chyba nastane, když ESME odešle SMPP požadavek obsahující TLV parametr, kde pole délky neodpovídá správně skutečné velikosti hodnoty.
Příklad transakce SMPP PDU
Požadavek PDU (submit_sm
) odeslaný ESME s neplatnou délkou TLV
00000040 (Délka) 00000004 (ID příkazu pro submit_sm) 00000000 (Stav příkazu) 00000001 (Pořadové číslo) 00 (Typ služby) 01 (TON zdrojové adresy - Mezinárodní) 01 (NPI zdrojové adresy - ISDN) 31323334 00 (Zdrojová adresa: "1234") 01 (TON cílové adresy - Mezinárodní) 01 (NPI cílové adresy - ISDN) 39383736 00 (Cílová adresa: "9876") 00 (Třída ESM) 00 (ID protokolu) 00 (Prioritní příznak) 00000000 (Čas plánovaného doručení - Nenastaven) 00000000 (Období platnosti - Nenastaven) 00 (Příznak nahrazení, pokud je přítomen) 00 (Výchozí ID zprávy Sm) 0005 (Délka zprávy) 48656C6C 6F (Zpráva: "Hello") 0421 0004 01 (Neplatné TLV: Zadaná délka 4, skutečná data 1 bajt)
Odpověď PDU (submit_sm_resp
) s ESME_RINVTLVLEN
00000010 (Délka) 80000004 (ID příkazu pro submit_sm_resp) 000000C2 (Stav příkazu - ESME_RINVTLVLEN) 00000001 (Pořadové číslo)
Problém: TLV (Tag 0x0421) specifikuje délku 4 bajtů, ale skutečná poskytnutá hodnota je pouze 1 bajt.
Jak to vyřešit?
- Zkontrolujte specifikaci SMPP, abyste ověřili správné požadavky na délku TLV.
- Ujistěte se, že pole délky přesně odráží skutečnou velikost dat.
- Validujte strukturu TLV před odesláním požadavku.
- Použijte simulátor SMPP nebo analyzátor paketů k prozkoumání struktury PDU.
- Odstraňte nebo opravte problematické TLV a znovu otestujte.
Oprava pole délky TLV tak, aby odpovídalo skutečné velikosti hodnoty, tento problém vyřeší.