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.

More information