Aller au contenu
OmniChannels.ai

API et SMPP

Comment se connecter à un fournisseur SMS en SMPP ?

Mis à jour le

Réponse courte

Pour vous connecter à un fournisseur SMS en SMPP, demandez un bind et faites enregistrer vos adresses IP sources, puis ouvrez une connexion TLS vers l'hôte et le port fournis. Envoyez bind_transceiver avec votre system_id et votre mot de passe, soumettez les messages avec submit_sm, acquittez chaque accusé deliver_sm et envoyez régulièrement enquire_link pour maintenir la session.

Ce que le fournisseur vous communique

L'accès SMPP est généralement configuré par le fournisseur, pas en libre-service. Indiquez-lui vos pays de destination, vos identifiants d'expéditeur (Sender ID), votre volume de pointe prévu et les adresses IP publiques depuis lesquelles vous vous connecterez.

ÉlémentDescription
Hôte et port TLSL'adresse à laquelle votre client se connecte
system_id et mot de passeIdentifiants du bind ; conservez-les comme des secrets
system_typeGénéralement vide, sauf si le fournisseur impose une valeur
Binds et débitLe nombre de sessions autorisées et le débit convenu par bind
Liste blanche d'IPSeules les IP sources enregistrées peuvent ouvrir un bind

Ouvrir et faire vivre la session

Un bind transceiver envoie et reçoit sur une seule session. N'utilisez des binds transmitter et receiver séparés que si votre client l'exige.

  1. Ouvrez une connexion TLS vers l'hôte et le port qui vous ont été attribués.
  2. Envoyez bind_transceiver avec system_id et mot de passe, puis attendez bind_transceiver_resp avec command_status 0.
  3. Soumettez chaque message avec submit_sm et conservez le message_id renvoyé dans submit_sm_resp.
  4. Recevez les accusés de réception sous forme de deliver_sm et répondez à chacun par deliver_sm_resp.
  5. Envoyez enquire_link pendant les périodes d'inactivité et reconnectez-vous avec un délai progressif si les réponses cessent.
  6. Fermez la session avec unbind et attendez unbind_resp.

Quels champs de submit_sm provoquent le plus de rejets ?

  • source_addr_ton et source_addr_npi : 5 et 0 pour un identifiant d'expéditeur alphanumérique, 1 et 1 pour un numéro international.
  • destination_addr : indicatif pays suivi du numéro, sans signe plus ni zéros initiaux.
  • data_coding : 0 pour l'alphabet GSM-7 par défaut, 8 pour l'UCS-2 (arabe, emoji et autres écritures).
  • registered_delivery : 1 pour demander un accusé de réception.
  • short_message contient jusqu'à 254 octets ; pour un contenu plus long, utilisez le TLV message_payload avec sm_length à 0, jamais les deux.

Erreurs de bind et d'envoi fréquentes

OmniChannels.ai configure des binds SMPP 3.4 sur TLS compte par compte, avec liste blanche des IP sources ; revendeurs et partenaires wholesale peuvent disposer de binds dédiés.

command_statusCause probableCorrection
ESME_RBINDFAILsystem_id erroné ou IP absente de la liste blancheVérifiez les identifiants et l'IP source
ESME_RINVPASWDMot de passe erronéVérifiez les identifiants
ESME_RINVSRCADRIdentifiant d'expéditeur ou TON/NPI invalideCorrigez l'expéditeur et le TON/NPI
ESME_RTHROTTLEDEnvoi au-delà du débit convenuRalentissez et réessayez avec un délai progressif

Sources officielles