ESME_RINVTLVLEN v SMPP
Čo je ESME_RINVTLVLEN?
ESME_RINVTLVLEN (Chybový kód: 0x000000C2) je chyba v SMPP, ktorá indikuje, že parameter Tag-Length-Value (TLV) v požiadavke má neplatnú dĺžku, čo znamená, že zadaná dĺžka nezodpovedá skutočnej dĺžke údajov.
Možné príčiny
- Pole dĺžky TLV nezodpovedá očakávanej veľkosti pre daný značku TLV.
- Poskytnutá dĺžka je kratšia alebo dlhšia, ako vyžaduje špecifikácia SMPP.
- Štruktúra TLV je poškodená alebo nesprávne formátovaná.
- Chyby v kódovaní poľa TLV.
Kedy k tomu dochádza?
Táto chyba nastane, keď ESME odošle požiadavku SMPP obsahujúcu parameter TLV, kde pole dĺžky nezodpovedá správne veľkosti skutočnej hodnoty.
Príklad transakcie SMPP PDU
Požiadavka PDU (submit_sm
) odoslaná ESME s neplatnou dĺžkou TLV
00000040 (Dĺžka) 00000004 (ID príkazu pre submit_sm) 00000000 (Stav príkazu) 00000001 (Sériové číslo) 00 (Typ služby) 01 (TON zdrojovej adresy - Medzinárodná) 01 (NPI zdrojovej adresy - ISDN) 31323334 00 (Zdrojová adresa: "1234") 01 (TON cieľovej adresy - Medzinárodná) 01 (NPI cieľovej adresy - ISDN) 39383736 00 (Cieľová adresa: "9876") 00 (Trieda ESM) 00 (ID protokolu) 00 (Príznak priority) 00000000 (Čas naplánovanej doručenia - Nie je nastavený) 00000000 (Obdobie platnosti - Nie je nastavené) 00 (Príznak nahradenia, ak je prítomný) 00 (Predvolené ID správy) 0005 (Dĺžka správy) 48656C6C 6F (Správa: "Hello") 0421 0004 01 (Neplatné TLV: Zadaná dĺžka 4, skutočné údaje 1 bajt)
Odpoveď PDU (submit_sm_resp
) s ESME_RINVTLVLEN
00000010 (Dĺžka) 80000004 (ID príkazu pre submit_sm_resp) 000000C2 (Stav príkazu - ESME_RINVTLVLEN) 00000001 (Sériové číslo)
Problém: TLV (Značka 0x0421) špecifikuje dĺžku 4 bajtov, ale skutočná poskytnutá hodnota je len 1 bajt.
Ako to vyriešiť?
- Skontrolujte špecifikáciu SMPP, aby ste overili správne požiadavky na dĺžku TLV.
- Uistite sa, že pole dĺžky presne odráža skutočnú veľkosť údajov.
- Overte štruktúru TLV pred odoslaním požiadavky.
- Použite simulátor SMPP alebo analyzátor paketov na kontrolu štruktúry PDU.
- Odstráňte alebo opravte problematické TLV a znova otestujte.
Oprava poľa dĺžky TLV tak, aby zodpovedalo skutočnej veľkosti hodnoty, vyrieši tento problém.