ESME_RALYBND dans SMPP

Qu'est-ce que ESME_RALYBND ?

ESME_RALYBND (Code d'erreur : 0x0000000B) est une erreur SMPP qui indique que l'ESME (External Short Messaging Entity) est déjà lié. Cela se produit lorsqu'un client SMPP tente de se lier alors qu'une session active avec le même identifiant système est déjà établie.

Causes possibles

  • Le client est déjà lié mais tente une autre requête bind_transmitter, bind_receiver ou bind_transceiver sans se délier au préalable.
  • La session précédente n'a pas été correctement fermée, ce qui amène le SMSC à croire que le client est toujours connecté.
  • Plusieurs instances du même client avec le même identifiant système tentent de se lier simultanément.
  • Le SMSC impose une restriction sur les liaisons concurrentes pour le même identifiant système.

Quand cela se produit-il ?

Cette erreur se produit lorsqu'un client SMPP envoie une requête de liaison alors qu'il est déjà lié ou si une connexion précédente n'a pas été correctement fermée.

Exemple de transaction PDU SMPP

Voici un exemple de scénario incorrect où une seconde requête bind_transmitter est envoyée alors que le client est déjà lié :

0000001C (Longueur)
00000002 (ID de commande pour bind_transmitter)
00000000 (Statut de commande)
00000001 (Numéro de séquence)
74657374 000000 (ID système : "test")
000000 (Mot de passe)

Problème : Le client est déjà lié, et le SMSC rejette la seconde tentative de liaison avec une réponse ESME_RALYBND.

Approche correcte :

  1. D'abord, se délier avant de tenter une nouvelle liaison :
  2.     00000010 (Longueur)
        00000006 (ID de commande pour unbind)
        00000000 (Statut de commande)
        00000002 (Numéro de séquence)
        
  3. Attendre une réponse unbind_resp avant d'envoyer une nouvelle requête de liaison.

Comment le résoudre ?

  • Assurez-vous qu'une seule session active existe par identifiant système.
  • Avant de relier, envoyez une requête unbind et attendez une réponse unbind_resp du SMSC.
  • Configurez le client pour détecter et gérer correctement les déconnexions ou les délais d'inactivité.
  • Vérifiez la présence d'instances dupliquées du même client fonctionnant simultanément.
  • Si le problème persiste, contactez le fournisseur du SMSC pour confirmer ses règles de gestion de session.

Si le problème continue, activez les logs de débogage pour tracer les requêtes de liaison et les états de session.

More information