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ément | Description |
|---|---|
| Hôte et port TLS | L'adresse à laquelle votre client se connecte |
| system_id et mot de passe | Identifiants du bind ; conservez-les comme des secrets |
| system_type | Généralement vide, sauf si le fournisseur impose une valeur |
| Binds et débit | Le nombre de sessions autorisées et le débit convenu par bind |
| Liste blanche d'IP | Seules 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.
- Ouvrez une connexion TLS vers l'hôte et le port qui vous ont été attribués.
- Envoyez bind_transceiver avec system_id et mot de passe, puis attendez bind_transceiver_resp avec command_status 0.
- Soumettez chaque message avec submit_sm et conservez le message_id renvoyé dans submit_sm_resp.
- Recevez les accusés de réception sous forme de deliver_sm et répondez à chacun par deliver_sm_resp.
- Envoyez enquire_link pendant les périodes d'inactivité et reconnectez-vous avec un délai progressif si les réponses cessent.
- 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_status | Cause probable | Correction |
|---|---|---|
| ESME_RBINDFAIL | system_id erroné ou IP absente de la liste blanche | Vérifiez les identifiants et l'IP source |
| ESME_RINVPASWD | Mot de passe erroné | Vérifiez les identifiants |
| ESME_RINVSRCADR | Identifiant d'expéditeur ou TON/NPI invalide | Corrigez l'expéditeur et le TON/NPI |
| ESME_RTHROTTLED | Envoi au-delà du débit convenu | Ralentissez et réessayez avec un délai progressif |
