ESME_RALYBND w SMPP

Co to jest ESME_RALYBND?

ESME_RALYBND (Kod błędu: 0x0000000B) to błąd SMPP, który wskazuje, że ESME (External Short Messaging Entity) jest już powiązane. Dzieje się tak, gdy klient SMPP próbuje się powiązać, gdy aktywna sesja z tym samym ID systemu jest już ustanowiona.

Możliwe przyczyny

  • Klient jest już powiązany, ale próbuje wysłać kolejne żądanie bind_transmitter, bind_receiver lub bind_transceiver bez wcześniejszego odwiązania.
  • Poprzednia sesja nie została prawidłowo zamknięta, przez co SMSC uważa, że klient jest nadal połączony.
  • Wiele instancji tego samego klienta z tym samym ID systemu próbuje się powiązać jednocześnie.
  • SMSC wymusza ograniczenie na jednoczesne powiązania dla tego samego ID systemu.

Kiedy występuje?

Ten błąd występuje, gdy klient SMPP wysyła żądanie powiązania, będąc już powiązanym, lub gdy poprzednie połączenie nie zostało prawidłowo zamknięte.

Przykładowa transakcja PDU SMPP

Poniżej znajduje się przykład nieprawidłowego scenariusza, w którym wysyłane jest drugie żądanie bind_transmitter podczas gdy klient jest już powiązany:

0000001C (Długość)
00000002 (ID polecenia dla bind_transmitter)
00000000 (Status polecenia)
00000001 (Numer sekwencji)
74657374 000000 (ID systemu: "test")
000000 (Hasło)

Problem: Klient jest już powiązany, a SMSC odrzuca drugą próbę powiązania z odpowiedzią ESME_RALYBND.

Prawidłowe podejście:

  1. Najpierw odwiąż się przed próbą nowego powiązania:
  2.     00000010 (Długość)
        00000006 (ID polecenia dla unbind)
        00000000 (Status polecenia)
        00000002 (Numer sekwencji)
        
  3. Poczekaj na unbind_resp przed wysłaniem nowego żądania powiązania.

Jak to rozwiązać?

  • Upewnij się, że istnieje tylko jedna aktywna sesja na ID systemu.
  • Przed ponownym powiązaniem wyślij żądanie unbind i poczekaj na odpowiedź unbind_resp od SMSC.
  • Skonfiguruj klienta, aby prawidłowo wykrywał i obsługiwał przekroczenia czasu sesji lub rozłączenia.
  • Sprawdź, czy nie występują duplikaty instancji tego samego klienta działające równocześnie.
  • Jeśli problem nadal występuje, skontaktuj się z dostawcą SMSC, aby potwierdzić zasady obsługi sesji.

Jeśli problem się utrzymuje, włącz dzienniki debugowania, aby śledzić żądania powiązań i stany sesji.

More information