ESME_RINVMSGLEN w SMPP

Co to jest ESME_RINVMSGLEN?

ESME_RINVMSGLEN (Kod błędu: 0x00000004) to błąd SMPP wskazujący na nieprawidłową długość wiadomości w żądaniu SMPP.

Możliwe przyczyny

  • Długość wiadomości przekracza dozwolony limit (zwykle 254 lub 160 znaków dla niektórych kodowań).
  • Długość wiadomości wynosi zero (pusta wiadomość).
  • Nieprawidłowe kodowanie powodujące nieoczekiwane obliczenia długości.
  • Uszkodzona lub nieprawidłowo sformułowana PDU (Jednostka Danych Protokołu) wysłana do systemu.
  • Nieprawidłowe łączenie długich wiadomości (problemy z podziałem).

Kiedy występuje?

Ten błąd występuje podczas przesyłania PDU SMPP (np. submit_sm, data_sm), gdy parametr długości wiadomości nie spełnia oczekiwanych ograniczeń długości ustawionych przez SMSC.

Przykładowa transakcja PDU SMPP

Poniżej znajduje się przykład nieprawidłowego PDU submit_sm, który może wywołać błąd ESME_RINVMSGLEN:

0000003C 00000004 00000000 00000001 
74657374 000101 35363137 38363530 
30303000 0000 0000 0000 00000000 
00000000 00

Problem: Pole długości wiadomości jest ustawione na zero, co powoduje błąd nieprawidłowej długości wiadomości.

Inne nieprawidłowe PDU, w którym wiadomość przekracza dozwoloną długość:

00000100 00000004 00000000 00000002 
74657374 000101 35363137 38363530 
30303000 0000 0000 0000 00000000 
00000100 (Zbyt długa)

Jak to rozwiązać?

  • Upewnij się, że długość wiadomości mieści się w dozwolonych limitach (sprawdź ograniczenia SMSC).
  • Sprawdź kodowanie (np. wiadomości UCS2 zajmują 2 bajty na znak).
  • Upewnij się, że długie wiadomości są prawidłowo łączone za pomocą sar_msg_ref_num, sar_total_segments itp.
  • Sprawdź, czy wiadomość nie jest pusta przed wysłaniem.
  • Zweryfikuj format PDU, aby upewnić się, że jest poprawnie sformatowany.

Jeśli problem nadal występuje, włącz debugowanie SMPP w kliencie lub bramie SMS, aby przeanalizować przesyłane surowe PDU.

More information