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.

sms marocapi smsotp 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 à plus de 100 requêtes par seconde, 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. Vous passez de 20 SMS/s en API à plus de 500 SMS/s en SMPP. - **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](/fr/blog/bien-utiliser-les-webhooks-de-delivery-report-dlr-architecture/). **À 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 SMS premium marocaine](/fr/api/), 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. 2. **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. 3. **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é Critique

Moins de 4 secondes pour vos OTP via des canaux directs opérateurs IAM, Inwi et Orange Maroc.

💰

Optimisation du Budget

WhatsApp Business API à 0,13 MAD seulement par session. Le meilleur ROI conversationnel.

🛡️

Données Souveraines (CNDP)

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