Description du connecteur SMPP smpp-connector-desc
Flux de données du connecteur SMS sms-data-flow
Cette section décrit comment le processus SMS gère les données.
Voici un diagramme de bloc de haut niveau qui résume la façon dont le processus SMS interagit avec son environnement.
Le processus SMS héberge deux composants importants : le connecteur SMPP lui-même qui gère la communication avec le fournisseur SMPP et une tâche en arrière-plan pour la réconciliation SR.
Flux de données pour les comptes SMPP sms-data-flow-smpp-accounts
Le processus SMS interroge nms:extAccount et génère de nouvelles connexions dans son connecteur SMPP, en transmettant les paramètres de chaque compte. La fréquence d’interrogation peut être ajustée dans serverConf, dans le paramètre configRefreshMillis.
Pour chaque compte SMPP actif, le connecteur SMPP tente de maintenir les connexions actives tout le temps. Il se reconnecte si la connexion est perdue.
Flux de données lors de l’envoi de messages sms-data-flow-sending-msg
-
Le processus SMS sélectionne les diffusions actives en analysant nms:delivery. Une diffusion est active lorsque :
- Son état implique que les messages peuvent être envoyés.
- Sa période de validité n’a pas expiré
- Il s’agit en fait d’une diffusion (par exemple, ce n’est pas un modèle, il n’est pas supprimé).
- Le connecteur SMPP peut ouvrir au moins une connexion pour le compte externe lié à la diffusion.
-
Pour chaque diffusion, le processus SMS charge les fragments de diffusion. Si le fragment de diffusion a été partiellement envoyé, le processus SMS vérifie les messages déjà envoyés en vérifiant le broadlog.
-
Le processus SMS développe le modèle avec les données de personnalisation de la partie diffusion.
-
Le connecteur SMPP génère un MT (PDU SUBMIT_SM) correspondant au contenu et à d’autres paramètres.
-
Le connecteur SMPP envoie le MT via une connexion d’émetteur (ou de récepteur).
-
Le fournisseur renvoie un identifiant pour ce MT. Il est inséré dans nms:providerMsgId.
-
Le processus SMS met à jour le broadlog vers le statut envoyé.
-
En cas d’erreur finale, le processus SMS met à jour le broadlog en conséquence et peut créer un nouveau type d’erreur dans nms:broadLogMsg.
Flux de données lors de la réception d’un SR sms-data-flow-sr
- Le connecteur SMPP reçoit et décode le SR (PDU DELIVER_SM). Il utilise des regex définis dans le compte externe pour obtenir l’identifiant et le statut du message.
- L’identifiant et le statut du message sont insérés dans nms:providerMsgStatus
- Une fois inséré, le connecteur SMPP répond avec un PDU DELIVER_SM_RESP.
- En cas de problème au cours du processus, le connecteur SMPP envoie un PDU DELIVER_SM_RESP négatif et consigne un message.
Flux de données lors de la réception d’un MO sms-data-flow-mo
- Le connecteur SMPP reçoit et décode le MO (PDU DELIVER_SM).
- Le mot-clé est extrait du message. S’il correspond à un mot-clé déclaré, les actions correspondantes sont exécutées. Il peut écrire dans nms:address pour mettre à jour la quarantaine.
- Si les fichiers TLV personnalisés sont déclarés, ils sont décodés selon leurs paramètres respectifs.
- Le MO entièrement décodé et traité est inséré dans la table nms:inSms.
- Le connecteur SMPP répond avec un PDU DELIVER_SM_RESP. Si une erreur a été détectée, un code d’erreur est renvoyé au fournisseur.
Flux de données lors de la réconciliation du MT et du SR sms-reconciling-mt-sr
- Le composant de réconciliation SR lit périodiquement nms:providerMsgId et nms:providerMsgStatus. Les données des deux tables sont jointes.
- Pour tous les messages comportant une entrée dans les deux tables, l’entrée nms:broadLog correspondante est mise à jour.
- La table nms:broadLogMsg peut être mise à jour au cours du processus si un nouveau type d'erreur est détecté, ou pour mettre à jour les compteurs pour les erreurs qui n'ont pas été qualifiées manuellement.
Correspondance des entrées MT, SR et broadlog sms-matching-entries
Voici un diagramme qui décrit l’ensemble du processus :
Phase 1
- Le message est analysé, formaté puis transmis au connecteur SMPP.
- Le connecteur SMPP le formate en tant que PDU MT SUBMIT_SM.
- Le MT est envoyé au fournisseur SMPP.
- Le fournisseur répond avec SUBMIT_SM_RESP. SUBMIT_SM et SUBMIT_SM_RESP correspondent par leur sequence_number.
- SUBMIT_SM_RESP fournit un identifiant provenant du fournisseur. Cet identifiant est inséré avec l’identifiant du journal large dans la table nms:providerMsgId.
Phase 2
- Le fournisseur envoie un PDU SR DELIVER_SM.
- Le SR est analysé pour extraire l’identifiant du fournisseur, le statut et le code d’erreur. Cette étape utilise des regex d’extraction.
- L'identifiant du fournisseur et son statut correspondant sont insérés dans nms:providerMsgStatus.
- Lorsque toutes les données sont insérées en toute sécurité dans la base de données, le connecteur SMPP répond avec DELIVER_SM_RESP. DELIVER_SM et DELIVER_SM_RESP correspondent par leur sequence_number.
Phase 3
- Le composant Réconciliation SR du processus SMS analyse périodiquement les tables nms:providerMsgId et nms:providerMsgStatus.
- Si une ligne contient des identifiants de fournisseur correspondant dans les deux tables, les 2 entrées sont unies. Cela permet de faire correspondre l’identifiant de broadlog (stocké dans providerMsgId) avec le statut (stocké dans providerMsgStatus).
- Le broadlog est mis à jour avec le statut correspondant.
Affinités et connecteur de processus dédié sms-affinities
Les affinités sont ignorées par le connecteur de processus dédié, il s’exécute uniquement dans le processus SMS.
Options serverConf sms-serverconf-options
Certains paramètres peuvent être réglés dans serverConf.xml. Comme tout autre paramètre de ce fichier, il doit être spécifié dans le fichier config-instance.xml. Tous les paramètres se trouvent dans l’élément < mta2 >.
Ce tableau résume tous les paramètres. Les valeurs raisonnables min./max. donnent une idée approximative de la plage à prendre en compte dans la plupart des cas. La valeur de débogage est la valeur à choisir lors de la recherche de problèmes qui ne sont pas liés aux performances.