Aller au contenu
For the complete DHIS2 documentation index, see llms.txt.

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ÉS de 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.