Plein SMPP 3.4 spec
Mise en œuvre complète du protocole - tous les types de PDU, les TLV optionnels et le cycle de commande/réponse complet.
TLS 1.3 transport, fenêtres de débit configurable, et l'opérateur complet DLR passe - sur les mêmes routes directes alimentant notre REST API. Un hôte, trois modes de liaison, plus de 50 pays.
← TLS 1.3 handshake complete (AES-256-GCM-SHA384) → bind_transceiver system_id = "your_system_id" password = "••••••••" interface_version = 0x34 ← bind_transceiver_resp command_status = 0x00000000 ESME_ROK system_id = "ESMSAFRICA" → submit_sm source_addr = "eSMSCo" destination_addr = "+254712345678" data_coding = 0x00 GSM-7 registered_delivery = 0x01 request DLR short_message = "Your OTP is 482910. Valid 5 min." ← submit_sm_resp command_status = 0x00000000 ESME_ROK message_id = "8A2F91C4" ── 4.2 s later ───────────────────────────── ← deliver_sm DLR from operator SMSC short_message = "id:8A2F91C4 sub:001 dlvrd:001 submit date:2605030812 done date:2605030812 stat:DELIVRD err:000" → deliver_sm_resp command_status = 0x00000000 ESME_ROK → enquire_link keepalive every 30 s ← enquire_link_resp
Pointez votre client SMPP à smpp.esmsafrica.io:2775. TLS 1.3 est appliqué - les connexions sans TLS sont refusées avant la poignée de main SMPP.
Envoyer et recevoir sur une seule liaison. Gère à la fois submit sm et delivery sm - le bon choix pour la plupart des intégrations.
Soumettre des messages seulement. Utilisez lorsque vous voulez isoler l'envoi sortant de la réception entrante DLR.
Recevez uniquement les messages entrants et les DLR. Paire avec une liaison TX pour les déploiements d'architecture fractionnée.
Mise en œuvre complète du protocole - tous les types de PDU, les TLV optionnels et le cycle de commande/réponse complet.
Toutes les connexions sont cryptées. TLS 1.3 est appliqué au niveau du transport - les anciennes versions sont rejetées à la poignée de main.
Les fenêtres de sortie sont configurables par system id. Les agrégateurs à volume élevé peuvent négocier une capacité d'éclatement dédiée.
Prise en charge complète des messages multi-parties par UDH. UCS-2 pour Unicode (data coding=8). Les charges utiles binaires (data coding=4) passent sous forme inchangée.
Les reçus de livraison de l'opérateur arrivent in extenso via delivery sm. Les codes d'erreur et les horodatages du transporteur SMSC sont conservés.
Deux points d'arrêt dans des régions séparées avec une panne automatique. La perte de bind déclenche un reconnect; enquire link maintient les connexions inactives en vie.
Every bind lands on our routing infrastructure, passes through licensed carrier routes, and delivers to the handset. No grey routes, no SIM farms.
← DLR retourne le même chemin: l'opérateur livre sm → eSMS calque de routage → votre lien → livre sm PDU
Toute bibliothèque SMPP 3.4 avec support TLS fonctionne. Ces extraits utilisent les clients open-source les plus populaires - échangez dans vos identifiants.
# pip install smpplib import ssl, smpplib.client, smpplib.gsm, smpplib.consts # TLS 1.3 context (required) ctx = ssl.create_default_context() client = smpplib.client.Client( 'smpp.esmsafrica.io', 2775, allow_unknown_opt_params=True, timeout=30, ) client.connect(ssl=ctx) client.bind_transceiver( system_id='YOUR_SYSTEM_ID', password='YOUR_PASSWORD', ) # Register DLR handler (deliver_sm callbacks) def dlr_received(pdu): msg = pdu.short_message if isinstance(msg, bytes): msg = msg.decode('latin-1') print(f"DLR: {msg}") client.set_message_received_handler(dlr_received) # Send a message (GSM-7, with DLR) parts, enc, msg_type = smpplib.gsm.make_parts('Your OTP is 482910') for part in parts: resp = client.send_message( source_addr_ton=smpplib.consts.SMPP_TON_ALNUM, source_addr_npi=smpplib.consts.SMPP_NPI_UNK, source_addr='eSMSCo', dest_addr_ton=smpplib.consts.SMPP_TON_INTL, dest_addr_npi=smpplib.consts.SMPP_NPI_ISDN, destination_addr='+254712345678', data_coding=enc, esm_class=msg_type, short_message=part, registered_delivery=1, ) print(f"Queued: {resp.message_id}") # Block and process inbound PDUs client.listen()
Node.js, Go et Java exemples dans le SMPP guide de démarrage rapide →
Nous fournissons lier les identifiants et valider la connexion sur un test SMSC avant que vous alliez en direct.