SMS¶
Service de messages courts (SMS)¶
Cette section porte sur l'API Web SMS, qui permet d'envoyer et de recevoir des messages texte courts.
Service de SMS sortant¶
L'API Web prend en charge l'envoi de SMS sortants à l'aide de la méthode POST. Les SMS peuvent être envoyés à un ou plusieurs destinataires. Une ou plusieurs passerelles doivent être configurées avant d'utiliser le service. Un SMS ne sera pas envoyé si aucune passerelle n'est configurée. Il nécessite un ensemble de destinataires et un texte de message au format JSON, comme indiqué ci-dessous.
/api/sms/sortant
{
"message":"Texte du Sms",
"destinataires": [
"004712341234",
"004712341235"
]
}
Remarque
La liste des destinataires sera divisée si la taille dépasse la limite
DESTINATAIRES_MAXIMUM_AUTORISÉSde 200.
L'API Web prend également en charge une version de paramètre de requête, mais l'API paramétrée ne peut être utilisée que pour envoyer des SMS à un seul destinataire.
/api/sms/outbound?message=text&recipient=004712341234
Les messages sortants peuvent être récupérés à l'aide de la ressource GET.
GET /api/sms/outbound
GET /api/sms/outbound?filter=status:eq:SENT
GET /api/sms/outbound?filter=status:eq:SENT&fields=*
Les messages sortants peuvent être supprimés à l'aide de la ressource SUPPRIMER.
SUPPRIMER/api/sms/outbound/{uid}
SUPPRIMER /api/sms/outbound?ids=uid1,uid2
Codes de réponse de la passerelle¶
La passerelle peut répondre avec les codes de réponse suivants.
Tableau : Codes de réponse de la passerelle
| Code de la réponse | Message de réponse | Description détaillée |
|---|---|---|
| CODE DU_RÉSULTAT_0 | succès | Le message a été envoyé avec succès |
| CODE DU_RÉSULTAT_1 | programmé | Le message a été programmé avec succès |
| CODE DU_RÉSULTAT_22 | erreur fatale interne | erreur fatale interne |
| CODE DU_RÉSULTAT_23 | échec de l'authentification | Les données de l'authentification sont incorrectes |
| CODE DU_RÉSULTAT_24 | échec de la validation des données | Les paramètres fournis dans la demande sont incorrects |
| CODE DU_RÉSULTAT_25 | crédits insuffisants | Le crédit est insuffisant pour envoyer un message |
| CODE DU_RÉSULTAT_26 | montant du crédit non disponible | Montant du crédit non disponible |
| CODE DU_RÉSULTAT_27 | vous avez dépassé votre quota journalier | vous avez dépassé votre quota journalier |
| CODE DU_RÉSULTAT_40 | temporairement indisponible | Le service est temporairement interrompu |
| CODE DU_RÉSULTAT_201 | taille maximale du lot dépassée | Taille maximale du lot dépassée |
| CODE DU_RÉSULTAT_200 | succès | La requête a été traitée avec succès |
| CODE DU_RÉSULTAT_202 | accepté | Le(s) message(s) sera(ont) traité(s) |
| CODE DU_RÉSULTAT_207 | multi-statut | Plus d'un message a été soumis à l'API ; cependant, tous les messages n'ont pas le même statut |
| CODE DU_RÉSULTAT_400 | mauvaise requête | Échec de validation (paramètres ou en-têtes manquants/invalides) |
| CODE DU_RÉSULTAT_401 | Non-autorisé | Échec de l'authentification. Ce problème peut également être causé par des paramètres de verrouillage de l'IP. |
| CODE DU_RÉSULTAT_402 | paiement requis | Crédit insuffisant pour envoyer un message |
| CODE DU_RÉSULTAT_404 | pas trouvé | La ressource n'existe pas |
| CODE DU_RÉSULTAT_405 | méthode non autorisée | La méthode Http n'est pas supportée par la ressource |
| CODE DU_RÉSULTAT_410 | parti | Le numéro du téléphone portable est bloqué |
| CODE DU_RÉSULTAT_429 | trop de requêtes | Erreur générique de limitation du taux |
| CODE DU_RÉSULTAT_503 | Service indisponible | Une erreur temporaire s'est produite sur notre plateforme - veuillez réessayer |
Service de SMS entrants¶
L'API Web prend en charge la collecte des messages SMS entrants à l'aide de la méthode POST. Les messages entrants acheminés vers l'API Web DHIS2 peuvent être reçus à l'aide de cette API. L'API collecte les messages SMS entrants et les fournit aux auditeurs pour qu'ils les analysent, en fonction du contenu du SMS (commande SMS). Un exemple de charge utile au format JSON est donné ci-dessous. Le texte, l'expéditeur, la date de réception et la date d'envoi sont des paramètres obligatoires. Les autres sont facultatifs, mais le système utilisera la valeur par défaut pour ces paramètres.
/api/sms/entrant
{
"texte" : "texte de l'échantillon",
"auteur": "004712341234",
"iddelapasserelle " : " inconnu",
"date de réception": "2016-05-01",
"date d'envoi":"2016-05-01",
"codage sms": "1",
"statut sms":"1"
}
Les messages entrants peuvent être récupérés à l'aide de la ressource GET.
GET /api/sms/inbound
GET /api/sms/inbound?fields=*&filter=smsstatus=INCOMING
Les messages entrants peuvent être supprimés à l'aide de la ressource SUPPRIMER.
SUPPRIMER /api/sms/inbound/{uid}
SUPPRIMER /api/sms/inbound?ids=uid1,uid2
Pour importer tous les messages non traités
POST /api/sms/entrant/importer
Tableau : Paramètres de requête de l'utilisateur
| Paramètre | Type | Description |
|---|---|---|
| message | Chaîne | Il s'agit d'un paramètre obligatoire qui contient le message textuel proprement dit. |
| auteur | Chaîne | Il s'agit d'un paramètre obligatoire qui indique de qui provient le message. |
| passerelle | Chaîne | Il s'agit d'un paramètre facultatif qui indique l'identifiant de la passerelle. S'il n'est pas présent, le texte par défaut " INCONNU " sera stocké |
| heure de réception | Date | Ce paramètre est facultatif. Il indique l'heure à laquelle le message a été reçu par la passerelle. |
Administration du service de la passerelle¶
L'API Web expose des ressources qui permettent de configurer et de mettre à jour les configurations de la passerelle SMS.
La liste des différentes passerelles configurées peut être obtenue à l'aide de la méthode GET
GET /api/33/gateways
Les configurations peuvent également être récupérées pour un type de passerelle spécifique à l'aide de la méthode GET.
GET /api/33/gateways/{uid}
De nouvelles configurations de passerelles peuvent être ajoutées à l'aide de POST. L'api POST nécessite un paramètre de requête de type et actuellement sa valeur peut être http,bulksms,clickatell,smpp. La première passerelle ajoutée sera définie par défaut. Une seule passerelle peut être définie par défaut à la fois. La passerelle par défaut ne peut être modifiée que par l'intermédiaire de son interface utilisateur. Si la passerelle par défaut est supprimée, la suivante dans la liste deviendra automatiquement la passerelle par défaut.
POST /api/33/gateways
La configuration peut être mise à jour en fournissant l'uid et la configuration de la passerelle comme indiqué ci-dessous
PUT /api/33/gateways/{uids}
Les configurations peuvent être supprimées pour un type de passerelle spécifique à l'aide de la méthode SUPPRIMER
DELETE /api/33/gateways/{uid}
La passerelle par défaut peut être récupérée et mise à jour.
GET /api/33/gateways/default
Default gateway can be set using the PUT method.
PUT /api/33/gateways/default/{uid}
Configuration de la passerelle¶
L'API Web vous permet de créer et de mettre à jour les configurations de la passerelle. Pour chaque type de passerelle, les paramètres de la charge utile JSON sont différents. Des exemples de charges utiles JSON pour chaque passerelle sont donnés ci-dessous. POST est utilisé pour créer et PUT pour mettre à jour les configurations. Le paramètre En-tête peut être utilisé dans le cas de "GenericHttpGateway" pour envoyer un ou plusieurs paramètres en tant qu'en-tête http.
Clickatell¶
{
"type" : "clickatell",
"nom" : "clickatell",
"nom d'utilisateur": "utilisateur de clickatell",
"authToken": "XXXXXXXXXXXXXXXXXXXX",
"modèle d'url": "https://platform.clickatell.com/messages"
}
Bulksms¶
{
"type": "bulksms",
"nom": "bulkSMS",
"nom d'utilisateur": "utilisateur bulk",
"mot de passe": "abc123"
}
Passerelle SMPP¶
{
"type": "smpp",
"nom": "smpp gateway2",
"systemId": "smppclient1",
"hôte" : " hôte local",
"type de système": "cp",
"Indicateur de plan de numérotation": "INCONNU",
"typeDeNombre": "INCONNU",
"type de lien": "BIND_TX",
"port": 2775,
"mot de passe" : "mot de passe",
"compressé" : faux
}
Générique HTTP¶
{
"type": "http",
"nom": "Générique",
"modèle de configuration": "nom d'utilisateur=${nom d'utilisateur}&mot de passe=${mot de passe}&to=${destinataires}&code pays=880&message=${text$}&identifiant du message=0",
"useGet": faux,
"paramètres d'envoi d'URL":faux,
"type de contenu": "APPLICATION_JSON",
"modèle d'url":"https://samplegateway.com/messages",
"paramètres": [
{
"en-tête": vrai,
"code": faux,
"clé": "nom d'utilisateur",
"valeur": "utilisateur_uio",
"confidentiel": vrai
},
{
"en-tête": vrai,
"code": faux,
"clé": "mot de passe",
"valeur": "123abcxyz",
"confidentiel": vrai
},
{
"en-tête": faux,
"code": faux,
"clé": "rapport de diffusion",
"valeur": "oui",
"confidentiel": faux
}
],
"estParDéfaut": faux
}
Dans une passerelle générique http, il est possible d'ajouter un nombre illimité de paramètres.
Tableau : Paramètres génériques de la passerelle SMS
| Paramètre | Type | Description |
|---|---|---|
| nom | Chaîne | nom de la passerelle |
| modèle de configuration | Chaîne | Le modèle de configuration qui est rempli avec les valeurs des paramètres. Par exemple, le modèle de configuration donné ci-dessus sera rempli comme suit : { "to" : "+27001234567", "body" : "Hello World !"} |
| useGet | Booléen | La méthode Http POST est utilisée par défaut. Pour la remplacer par Http GET, l'utilisateur peut attribuer la valeur "true" au paramètre "useGet". |
| type de contenu | Chaîne | Le type de contenu spécifie le type de données envoyées. Les types pris en charge sont l'APPLICATION_JSON, l'APPLICATION_XML, le FORMULAIRE_URL_CODE, TEXTE_CLAIR |
| modèle d'url | Chaîne | modèle d'url |
| En-tête | Booléen | Si le paramètre doit être envoyé dans les en-têtes Http |
| coder | Booléen | Si le paramètre doit être codé |
| clé | Chaîne | clé de paramètre |
| valeur | Chaîne | valeur du paramètre |
| confidentiel | Booléen | Si le paramètre est confidentiel. Ce paramètre ne sera pas exposé à travers l'API |
| Paramètres d'envoi d'Url | Booléen | Si cette option est cochée, le modèle d'url peut être ajouté aux paramètres de la requête. Ceci est utile si l'API de la passerelle ne prend en charge que le HTTP GET. Un exemple de modèle d'url ressemble à ceci "urlTemplate" : "https://samplegateway.com/messages?apiKey={apiKey}&to={recipients},content={text},deliveryreport={dp}". |
HTTP.OK sera renvoyé si les configurations sont sauvegardées avec succès, sinon Erreur s'affiche
Les commandes SMS¶
Les commandes SMS sont utilisées pour collecter des données par SMS. Ces commandes appartiennent à un type d'analyseur spécifique. Chaque analyseur a des fonctionnalités différentes.
La liste des commandes peut être récupérée à l'aide de la fonction GET.
GET /api/smsCommands
Une commande particulière peut être récupérée à l'aide de GET.
GET /api/smsCommands/uid
Une commande particulière peut être mise à jour à l'aide de PUT.
PUT /api/smsCommands/uid
La commande peut être créée en utilisant POST.
POST /api/smsCommands
Une commande particulière peut être supprimée à l'aide de la commande SUPPRIMER.
DELETE /api/smsCommands/uid
Types de commande SMS¶
| Type | Utilisation |
|---|---|
| ANALYSEUR_CLÉ_DE VALEUR | Pour la collecte de données agrégées. |
| ANALYSEUR_D'ALERTES | Pour envoyer des messages d'alerte. |
| ANALYSEUR_NON ENREGISTRÉ | Pour la surveillance des maladies et la notification des cas. |
| ANALYSEUR_D'ENREGISTREMENT_D'ENTITÉS_SUIVIES | Pour l'enregistrement de l'entité du tracker. |
| ANALYSEUR_DE SAISIE DE DONNÉES_DE L'ÉTAPE_DU PROGRAMME | Collecte de données pour l'étape du programme. ( L'IES est identifié sur la base du numéro de téléphone ) |
| ANALYSEUR_D'ENREGISTREMENT_D'ÉVÉNEMENTS | Enregistrement d'un événement unique. Elle est utilisée pour les programmes d'événements. |
Types de commandes SMS pour Android¶
Ces types de commandes peuvent être utilisés par l'application Android pour l'envoi de données par SMS lorsque la connexion internet n'est pas disponible. Le SMS est composé par l'application Android.
| Type | Utilisation |
|---|---|
| ENSEMBLE DE DONNÉES_AGRÉGÉ | Pour la collecte de données agrégées. |
| INSCRIPTION | Pour l'enregistrement de l'entité du tracker. |
| ÉVÉNEMENT_TRACKER | Inscription à un événement pour les programmes tracker. |
| ÉVÉNEMENT_SIMPLE | Inscription aux programmes d'événements. |
| RELATION | Créer des relations. |
| SUPPRIMER | Supprimer un événement. |