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.