deliver_sm arrive depuis la passerelle. Il porte deux
choses différentes, et votre handler doit les séparer avant tout le reste.
Lire un accusé
Le corps suit le format conventionnel :id est l’id de message issu de votre submit_sm_resp. C’est la clé de corrélation, et la seule.
stat est l’état brut : DELIVRD, UNDELIV, EXPIRED, DELETED, ACCEPTD, UNKNOWN,
REJECTD, FAILED, BUFFRED, SEEN. EXPIRED, REJECTD et UNDELIV sont tous facturés comme
des échecs mais signifient des choses différentes.
Trois segments, trois accusés
Par défaut, vous obtenez un accusé parsubmit_sm envoyé, chacun citant l’id qui vous a été remis.
Votre fournisseur peut ramener cela à un seul avec conf.dlr.multipart réglé sur first ou
last, qui porte les vrais totaux sub:/dlvrd:.
Chaque accusé rapporte la même issue quel que soit le choix, parce que les segments sortants
sont agrégés avant qu’un accusé ne soit construit. Il n’y a donc rien à rapprocher entre eux :
prenez-en un et ignorez le reste, ou demandez à votre fournisseur d’en envoyer un seul.
Messages entrants
Undeliver_sm sans les bits d’accusé est un vrai message envoyé à votre numéro par quelqu’un.
La passerelle doit résoudre quel compte possède le numéro de destination avant de pouvoir vous
le router. Si ce mappage manque, le message est enregistré et livré nulle part. Et il n’y a rien
d’observable de votre côté, car du point de vue du routage il ne vous a jamais été adressé.
Répondre
Répondez à chaquedeliver_sm par un deliver_sm_resp. Un PDU non répondu consomme un créneau de
fenêtre côté passerelle, et suffisamment de PDUs non répondus font caler la session d’une manière
qui ressemble à la passerelle ayant cessé d’envoyer.
Si les accusés n’arrivent jamais
1
Votre bind peut-il recevoir ?
Un bind transmitter-only ne le peut pas. C’est la cause la plus fréquente et la plus facile à
manquer, parce que l’envoi fonctionne parfaitement.
2
En avez-vous demandé ?
registered_delivery à 0x00 signifie aucun. Certaines librairies le mettent à zéro par
défaut.3
Le vendor en produit-il ?
Si votre fournisseur a
request.dlrs désactivé pour le vendor qui transporte votre trafic,
rien ne rapporte jamais d’issue et chaque message se règle en EXPIRED à sa date limite.Voir aussi
Soumettre
registered_delivery et son mapping vers les niveaux d’accusé.FAQ SMPP
Fenêtres, throttling, reconnexions et sessions stale.