ESME_RINVTLVLEN w SMPP
Co to jest ESME_RINVTLVLEN?
ESME_RINVTLVLEN (Kod błędu: 0x000000C2) to błąd SMPP wskazujący, że parametr Tag-Length-Value (TLV) w żądaniu ma nieprawidłową długość, co oznacza, że podana długość nie odpowiada rzeczywistej długości danych.
Możliwe przyczyny
- Pole długości TLV nie pasuje do oczekiwanego rozmiaru dla danego tagu TLV.
- Podana długość jest krótsza lub dłuższa niż wymaga tego specyfikacja SMPP.
- Struktura TLV jest uszkodzona lub nieprawidłowo sformułowana.
- Błędy kodowania w polu TLV.
Kiedy występuje?
Ten błąd występuje, gdy ESME wysyła żądanie SMPP zawierające parametr TLV, w którym pole długości nie odpowiada poprawnie rzeczywistemu rozmiarowi wartości.
Przykładowa transakcja PDU SMPP
Żądanie PDU (submit_sm
) wysłane przez ESME z nieprawidłową długością TLV
00000040 (Długość) 00000004 (ID polecenia dla submit_sm) 00000000 (Status polecenia) 00000001 (Numer sekwencji) 00 (Typ usługi) 01 (TON adresu źródłowego - międzynarodowy) 01 (NPI adresu źródłowego - ISDN) 31323334 00 (Adres źródłowy: "1234") 01 (TON adresu docelowego - międzynarodowy) 01 (NPI adresu docelowego - ISDN) 39383736 00 (Adres docelowy: "9876") 00 (Klasa ESM) 00 (ID protokołu) 00 (Flaga priorytetu) 00000000 (Czas dostawy - nie ustawiony) 00000000 (Okres ważności - nie ustawiony) 00 (Flaga zastąpienia, jeśli obecna) 00 (Domyślne ID wiadomości Sm) 0005 (Długość wiadomości) 48656C6C 6F (Wiadomość: "Hello") 0421 0004 01 (Nieprawidłowe TLV: Podana długość 4, rzeczywiste dane 1 bajt)
Odpowiedź PDU (submit_sm_resp
) z ESME_RINVTLVLEN
00000010 (Długość) 80000004 (ID polecenia dla submit_sm_resp) 000000C2 (Status polecenia - ESME_RINVTLVLEN) 00000001 (Numer sekwencji)
Problem: TLV (Tag 0x0421) określa długość 4 bajtów, ale podana wartość ma tylko 1 bajt.
Jak to rozwiązać?
- Sprawdź specyfikację SMPP, aby zweryfikować wymagania dotyczące długości TLV.
- Upewnij się, że pole długości dokładnie odzwierciedla rzeczywisty rozmiar danych.
- Sprawdź poprawność struktury TLV przed wysłaniem żądania.
- Użyj symulatora SMPP lub analizatora pakietów, aby sprawdzić strukturę PDU.
- Usuń lub popraw problematyczne TLV i przetestuj ponownie.
Poprawienie pola długości TLV, aby pasowało do rzeczywistego rozmiaru wartości, rozwiąże ten problem.