Přeskočit obsah
For the complete DHIS2 documentation index, see llms.txt.

SMS

Short Message Service (SMS)

This section covers the SMS Web API for sending and receiving short text messages.

Odchozí služba SMS

The Web API supports sending outgoing SMS using the POST method. SMS can be sent to single or multiple destinations. One or more gateways need to be configured before using the service. An SMS will not be sent if there is no gateway configured. It needs a set of recipients and message text in JSON format as shown below.

/api/sms/outbound
{
  "message":"Sms Text",
  "recipients": [
    "004712341234",
    "004712341235"
  ]
}

Poznámka

Seznam příjemců bude rozdělen, pokud MAX_ALLOWED_RECIPIENTS překročí limit 200.

The Web API also supports a query parameter version, but the parameterized API can only be used for sending SMS to a single destination.

/api/sms/outbound?message=text&recipient=004712341234

Odchozí zprávy lze načíst pomocí prostředku GET.

GET /api/sms/outbound
GET /api/sms/outbound?filter=status:eq:SENT
GET /api/sms/outbound?filter=status:eq:SENT&fields=*

Odchozí zprávy lze odstranit pomocí prostředku DELETE.

DELETE /api/sms/outbound/{uid}
DELETE /api/sms/outbound?ids=uid1,uid2

Kódy odezvy brány

Brána může reagovat s následujícími kódy odpovědí.

Tabulka: Kódy odezvy brány

Kód odezvy Zpráva s odpovědí Detailní popis
RESULT_CODE_0 success Zpráva byla úspěšně odeslána
RESULT_CODE_1 scheduled Zpráva byla úspěšně naplánována
RESULT_CODE_22 internal fatal error Vnitřní fatální chyba
RESULT_CODE_23 authentication failure Ověřovací údaje jsou nesprávné
RESULT_CODE_24 data validation failed Parametry uvedené v požadavku jsou nesprávné
RESULT_CODE_25 insufficient credits Kredit nestačí k odeslání zprávy
RESULT_CODE_26 upstream credits not available Upstream kredity nejsou k dispozici
RESULT_CODE_27 exceeded your daily quota Překročili jste svou denní kvótu
RESULT_CODE_40 temporarily unavailable Služba je dočasně mimo provoz
RESULT_CODE_201 maximum batch size exceeded Překročena maximální velikost dávky
RESULT_CODE_200 success Žádost byla úspěšně dokončena
RESULT_CODE_202 accepted Zpráva(y) budou zpracovány
RESULT_CODE_207 multi-status Do rozhraní API byla odeslána více než jedna zpráva; ne všechny zprávy však mají stejný stav
RESULT_CODE_400 bad request Selhání ověření (například chybějící / neplatné parametry nebo záhlaví)
RESULT_CODE_401 unauthorized Selhání autentizace. To může být také způsobeno nastavením uzamčení IP
RESULT_CODE_402 payment required Nedostatek kreditu k odeslání zprávy
RESULT_CODE_404 not found Zdroj neexistuje
RESULT_CODE_405 method not allowed Metoda HTTP není na zdroji podporována
RESULT_CODE_410 gone Mobilní číslo je blokováno
RESULT_CODE_429 too many requests Obecná chyba omezení četnosti
RESULT_CODE_503 service unavailable Na naší platformě došlo k dočasné chybě – zkuste to prosím znovu

Služba příchozích SMS

The Web API supports collecting incoming SMS messages using the POST method. Incoming messages routed towards the DHIS2 Web API can be received using this API. The API collects inbound SMS messages and provides it to listeners for parsing, based on the SMS content (SMS Command). An example payload in JSON format is given below. Text, originator, received date and sent date are mandatory parameters. The rest are optional but the system will use the default value for these parameters.

/api/sms/inbound
{
  "text": "sample text",
  "originator": "004712341234",
  "gatewayid": "unknown",
  "receiveddate": "2016-05-01",
  "sentdate": "2016-05-01",
  "smsencoding": "1",
  "smsstatus": "1"
}

Příchozí zprávy lze načíst pomocí prostředku GET

GET /api/sms/inbound
GET /api/sms/inbound?fields=*&filter=smsstatus=INCOMING

Příchozí zprávy lze odstranit pomocí prostředku DELETE

DELETE /api/sms/inbound/{uid}
DELETE /api/sms/inbound?ids=uid1,uid2

Chcete-li importovat všechny nepřečtené zprávy

POST /api/sms/inbound/import

Tabulka: Parametry dotazu uživatele

Parametr Typ Popis
message Řetězec Toto je povinný parametr, který nese skutečnou textovou zprávu.
originator Řetězec Toto je povinný parametr, který ukazuje, od koho byla tato zpráva skutečně odeslána.
gateway Řetězec Toto je volitelný parametr, který udává ID brány. Pokud není uveden, bude uložen výchozí text „NEZNÁMÝ“.
receiveTime Datum Toto je volitelný parametr. Je to časové razítko, ve kterém byla zpráva přijata na bráně.

Správa služby brány

The Web API exposes resources which provide a way to configure and update SMS gateway configurations.

The list of different gateways configured can be retrieved using a GET method.

GET /api/33/gateways

Configurations can also be retrieved for a specific gateway type using GET method.

GET /api/33/gateways/{uid}

New gateway configurations can be added using POST. POST api requires type request parameter and currently its value can have either one http,bulksms,clickatell,smpp. First added gateway will be set to default. Only one gateway is allowed to be default at one time. Default gateway can only be changed through its api. If default gateway is removed then the next one the list will automatically becomes default.

POST /api/33/gateways

Konfiguraci lze aktualizovat poskytnutím konfigurací uid a gateway, jak je uvedeno níže

PUT /api/33/gateways/{uids}

Configurations can be removed for specific gateway type using DELETE method.

DELETE /api/33/gateways/{uid}

Výchozí bránu lze načíst a aktualizovat.

GET /api/33/gateways/default

Výchozí bránu lze nastavit pomocí metody PUT.

PUT /api/33/gateways/default/{uid}

Konfigurace brány

Webové rozhraní API umožňuje vytvářet a aktualizovat konfigurace brány. Pro každý typ brány jsou v zátěži JSON různé parametry. Níže jsou uvedeny příklady užitečných zatížení JSON pro jednotlivé brány. Pro vytvoření konfigurace se používá POST a pro aktualizaci PUT. Parametr hlavičky lze použít v případě brány GenericHttpGateway k odeslání jednoho nebo více parametrů jako hlavičky http.

Clickatell

{
  "type": "clickatell",
  "name": "clickatell",
  "username": "clickatelluser",
  "authToken": "XXXXXXXXXXXXXXXXXXXX",
  "urlTemplate": "https://platform.clickatell.com/messages"
}

Bulksms

{
  "type": "bulksms",
  "name": "bulkSMS",
  "username": "bulkuser",
  "password": "abc123"
}

SMPP Brána

{
  "type": "smpp",
  "name": "smpp gateway2",
  "systemId": "smppclient1",
  "host": "localhost",
  "systemType": "cp",
  "numberPlanIndicator": "UNKNOWN",
  "typeOfNumber": "UNKNOWN",
  "bindType": "BIND_TX",
  "port": 2775,
  "password": "password",
  "compressed": false
}

Obecný HTTP

{
  "type": "http",
  "name": "Generic",
  "configurationTemplate": "username=${username}&password=${password}&to=${recipients}&countrycode=880&message=${text$}&messageid=0",
  "useGet": false,
  "sendUrlParameters": false,
  "contentType": "APPLICATION_JSON",
  "urlTemplate": "https://samplegateway.com/messages",
  "parameters": [
    {
      "header": true,
      "encode": false,
      "key": "username",
      "value": "user_uio",
      "confidential": true
    },
    {
      "header": true,
      "encode": false,
      "key": "password",
      "value": "123abcxyz",
      "confidential": true
    },
    {
      "header": false,
      "encode": false,
      "key": "deliveryReport",
      "value": "yes",
      "confidential": false
    }
  ],
  "isDefault": false
}

V obecné bráně http lze přidat libovolný počet parametrů.

Tabulka: Obecné parametry SMS brány

Parametr Typ Popis
název Řetězec název brány
configurationTemplate Řetězec Šablona konfigurace, která se naplní hodnotami parametrů. Například výše uvedená konfigurační šablona bude vyplněna takto { "to": "+27001234567", "body": "Hello World!"}
useGet Boolean Ve výchozím nastavení bude použita metoda POST Http. Chcete-li to změnit a Http GET, může uživatel nastavit příznak useGet na true.
contentType Řetězec Typ obsahu určete, jaký typ dat se odesílá. Podporované typy jsou APPLICATION_JSON, APPLICATION_XML, FORM_URL_ENCODED, TEXT_PLAIN
urlTemplate Řetězec Šablona adresy URL
header Boolean Pokud je třeba odeslat parametr v hlavičkách HTTP
encode Boolean Pokud je třeba parametr zakódovat
key Řetězec parameter key
value Řetězec parameter value
confidential Boolean Pokud je parametr důvěrný. Tento parametr nebude vystaven prostřednictvím API
sendUrlParameters Boolean Pokud je tento příznak zaškrtnutý, lze k urlTemplate přidat parametry dotazu. To je užitečné, pokud rozhraní API brány podporuje pouze HTTP GET. Ukázková šablona url vypadá takto "urlTemplate":"https://samplegateway.com/messages?apiKey={apiKey}&to={recipients},content={text},deliveryreport={dp}"

HTTP.OK will be returned if configurations are saved successfully otherwise Error

SMS příkazy

SMS commands are being used to collect data through SMS. These commands belong to specific parser type. Each parser has different functionality.

Seznam příkazů lze vyvolat pomocí GET.

GET /api/smsCommands

Jeden konkrétní příkaz lze načíst pomocí GET.

GET /api/smsCommands/uid

Jeden konkrétní příkaz lze aktualizovat pomocí PUT.

PUT /api/smsCommands/uid

Příkaz lze vytvořit pomocí POST.

POST /api/smsCommands

Jeden konkrétní příkaz lze odstranit pomocí DELETE.

DELETE /api/smsCommands/uid

Typy příkazů SMS

Typ Používání
KEY_VALUE_PARSER Pro agregovaný sběr dat.
ALERT_PARSER Odesílání výstražných zpráv.
UNREGISTERED_PARSER Pro hlášení případů dozoru nad chorobami.
TRACKED_ENTITY_REGISTRATION_PARSER Pro registraci entity trasovače.
PROGRAM_STAGE_DATAENTRY_PARSER Sběr dat pro programovou fázi. (TEI je identifikován na základě phoneNumner)
EVENT_REGISTRATION_PARSER Registrace jednotlivé události. Používá se pro programy událostí.

Typy příkazů SMS pro Android

Tyto typy příkazů může aplikace pro Android používat k odesílání dat pomocí SMS, když není k dispozici internet. SMS se skládá z aplikace pro Android.

Typ Používání
AGGREGATE_DATASET Pro agregovaný sběr dat.
ZÁPIS Pro registraci entity trasovače.
TRACKER_EVENT Registrace události pro programy sledování.
SIMPLE_EVENT Registrace události pro programy událostí.
VZTAH Vytvářet vztahy.
SMAZAT Smazat událost.