Expertise technical

Configurer une connexion SMPP au Maroc : guide pas-à-pas pour les entreprises à fort volume

Configurer smpp maroc : guide technique avec exemples de code pour les développeurs au Maroc.

Configurer une connexion SMPP au Maroc : guide pas-à-pas pour les entreprises à fort volume

Si vous développez l'infrastructure d'une grande banque marocaine, d'une chaîne de grande distribution ou d'un opérateur logistique, vous réaliserez vite qu'une simple API REST (HTTP) montre ses limites. Lorsque vous devez envoyer 2 millions de notifications le jour d'Aïd al-Adha, ou router des OTP vitaux en très grand volume, la latence TCP d'une requête HTTP devient un goulot d'étranglement inacceptable.

La solution standard de l'industrie télécom est le protocole SMPP (Short Message Peer-to-Peer).

Bien qu'il soit extrêmement rapide et asynchrone, configurer une connexion SMPP directe avec les passerelles marocaines demande une rigueur d'ingénierie absolue. Voici comment réussir cette intégration.

SMPP, c'est quoi concrètement et pour qui ?

Le SMPP (actuellement en v3.4 pour la majorité des passerelles) est un protocole binaire fonctionnant sur TCP/IP. Contrairement à HTTP où vous ouvrez et fermez une connexion pour chaque envoi, le SMPP ouvre un tunnel permanent (un Bind) entre votre serveur (l'ESME) et la passerelle du fournisseur (le SMSC).

Ce que cela apporte :

  • Débit massif : Vous envoyez un flux binaire continu. Pas de headers HTTP lourds. Le débit n'est plus limité par une requête HTTP par message.
  • DLR natifs et asynchrones : Les Delivery Reports (Accusés de réception) remontent de l'opérateur marocain (IAM, inwi, Orange) directement dans ce même tunnel TCP. Vous n'avez plus besoin d'exposer un webhook web sur votre serveur.

À partir de quand l'utiliser ?
Le développement d'un client SMPP prend 10 fois plus de temps qu'une intégration API. N'utilisez SMPP que si votre volume excède 1 million de SMS par mois ou si votre SLA d'OTP exige une soumission à la passerelle en moins de 100 millisecondes.

Paramètres de connexion à configurer (Le Bind)

Pour établir une connexion SMPP avec une passerelle qui la propose (chez EnvoiSMS, le SMPP n'est proposé que sur demande, pour les gros volumes ; par défaut, les envois passent par l'API REST et son endpoint bulk), votre fournisseur vous fournira 4 éléments vitaux : l'IP, le Port, le System ID (votre login) et le Password.

Mais vous devez configurer le comportement de votre client SMPP de manière optimale :

  1. Le Bind Type :
  • Transmitter (TX) : Pour uniquement envoyer des SMS.
  • Receiver (RX) : Pour uniquement recevoir les DLR et SMS entrants.
  • Transceiver (TRX) : La recommandation standard. Permet d'envoyer et de recevoir sur la même connexion TCP.
  1. Le fenêtrage (Window Size) : C'est le secret de la vitesse du SMPP. C'est le nombre de messages que vous pouvez envoyer dans le tunnel avant d'attendre la confirmation (Acknowledge) du serveur. Si le serveur autorise une fenêtre de 50, vous envoyez 50 PDU asynchrones d'un coup.
  2. L'Enquire Link (Keep-alive) : Étant donné que le tunnel doit rester ouvert 24/7, votre script doit envoyer un enquire_link toutes les 30 ou 60 secondes pour prouver au serveur opérateur que vous êtes toujours en ligne.

Tester sa connexion en environnement de pré-production

Ne vous connectez jamais directement à l'adresse de production. Une boucle d'erreur de votre code SMPP peut inonder le serveur (DDoS involontaire) et entraîner la suspension de votre IP.

  1. Connectez-vous à la Sandbox SMPP du fournisseur.
  2. Envoyez un submit_sm (la requête d'envoi d'un SMS) avec un numéro de test (ex: +212600000000).
  3. Vérifiez la réception du submit_sm_resp avec un statut ESME_ROK (Code 0x00000000), ce qui signifie que l'envoi est validé.
  4. Laissez votre client inactif pendant 10 minutes pour vérifier que votre mécanisme enquire_link maintient bien la connexion sans Timeout.

Erreurs de configuration les plus fréquentes

  • L'encodage DCS (Data Coding Scheme) : C'est le problème #1 au Maroc. En SMPP, vous devez préciser explicitement le format de votre texte. Pour du français standard, utilisez DCS 0x00 (SMSC Default) ou 0x01 (ASCII). Pour la darija avec caractères arabes, vous devez obligatoirement convertir votre texte en Hexadécimal et définir le DCS sur 0x08 (UCS-2).
  • Le format TON/NPI : Pour des numéros de destination marocains internationaux (+212), vous devez configurer le TON (Type of Number) sur 1 (International) et le NPI (Numbering Plan Indicator) sur 1 (ISDN/E.164). Si vous laissez ces valeurs à 0, Maroc Telecom ou Orange peuvent rejeter la trame.
  • Rupture de la file d'attente (Queue Drop) : Si votre connexion TCP coupe, tous les SMS de votre RAM non confirmés par la passerelle sont perdus. Votre client doit utiliser un système externe comme Redis ou RabbitMQ pour garantir que tout message non "Acké" est remis dans la file pour la prochaine reconnexion.

💡 Pourquoi choisir EnvoiSMS pour votre entreprise ?

Délivrabilité Opérateurs

Routes locales vers IAM, Orange et Inwi, avec bascule automatique entre routes et statut de livraison transmis par webhook.

💰

Optimisation Budgétaire

WhatsApp Business API dès 0,65 MAD par message. Le meilleur retour sur investissement.

🛡️

Données Souveraines (CNDP)

Hébergement conforme aux réglementations de protection des données personnelles locales.

Q.Comment suivre l'acheminement sur les réseaux IAM, Inwi et Orange ?
Nos routes locales vers Maroc Telecom (IAM), Orange et inwi, avec bascule automatique entre routes, renvoient un statut de livraison opérateur pour chaque message, par webhook. Le délai de remise dépend de l'opérateur et du réseau du destinataire.
Q.Comment la plateforme gère-t-elle le format des numéros marocains ?
EnvoiSMS normalise automatiquement les numéros saisis (06..., 07..., 00212...) vers le standard E.164 (+212) pour éviter tout échec de distribution.

Articles suggérés

Formatage SMS au Maroc : Sauts de ligne, Encodage GSM-7 vs UCS-2 et Optimisation des Coûts
technical

Formatage SMS au Maroc : Sauts de ligne, Encodage GSM-7 vs UCS-2 et Optimisation des Coûts

Formatage WhatsApp Business au Maroc : Texte Enrichi, Emojis et Boutons Interactifs
technical

Formatage WhatsApp Business au Maroc : Texte Enrichi, Emojis et Boutons Interactifs

Chatbot WhatsApp en Darija Marocain : Comment l'IA Traite l'Arabizi et le Mix Français-Arabe
technical

Chatbot WhatsApp en Darija Marocain : Comment l'IA Traite l'Arabizi et le Mix Français-Arabe