REST obdoba služby nahrazující původní MxWebServices doplněné o další funkce např. auditorské logování.
Využití:
Umožňuje nakonfigurovat webové REST služby odpovídající původním MxWebServices na různých url s volitelnými rozšířeními:
•logování/audit parametrů požadavků - např. HTTP hlaviček, výsledků requestu, vstupních parametrů.
•generování parametru MessageId
•uživatelské validátory/authentikátory
Konfigurace:
Konfigurace MxRestService je definována XML.
Element <mxRestServiceConfiguration> obsahuje element <mxRestServices>,
který obsahuje elementy <mxRestService> s definicemi jednotlivých webových REST služeb.
Implementované metody:
SendSimpleSMS (POST) - Zjednodušené poslání SMS
SendSimpleSMSWithToken (POST) - Zjednodušené poslání SMS (ověřuje token)
SendSimpleSMSWithToken2 (POST) - Zjednodušené poslání SMS (ověřuje token) v2
SendSMS (POST) - Pokročilé poslání SMS
SendSMSWithToken (POST) - Pokročilé poslání SMS (ověřuje token)
SendSMSWithToken2 (POST) - Pokročilé poslání SMS (ověřuje token) v2
SendSMSEx (POST) - Pokročilé poslání SMS
ReadMessages (GET) - Načtení záznamů z fronty zpráv
ReadMessagesWithToken (GET) - Načtení záznamů z fronty zpráv (ověřuje token)
ConfirmMessages (POST) - Potvrzení převzetí zpráv získaných metodou ReadMessages
ConfirmMessagesWithToken (POST) - Potvrzení převzetí zpráv získaných metodou ReadMessages (ověření tokenem)
GetSentMessagesInfo (GET) - Vrátí počet zpráv na lince v určitém statusu
GetSentMessagesInfoWithToken (GET) - Vrátí počet zpráv na lince v určitém statusu (ověřuje token)
GetLineNames (GET) - Vrátí seznam linek MX
GetLineNamesWithToken (GET) - Vrátí seznam linek MX (ověřuje token)
SendSimpleSMS:
Zjednodušené poslání SMS
•Url: <bázová URL>/SendSimpleSMS
•Metoda: POST
•Request
oAtributy
▪ToNumber (string) ... Cílové telefonní číslo
▪MessageText(string) ... Text SMS
oPříklad požadavku
{
"ToNumber" : "420732206714",
"MessageText" : "Ahoj"
}
SendSimpleSMSWithToken:
Zjednodušené poslání SMS s tokenem pro autorizaci
•Url: <bázová URL>/SendSimpleSMSWithToken
•Metoda: POST
•Request
oAtributy
▪ToNumber (string) ... Cílové telefonní číslo
▪MessageText (string) ... Text SMS
▪Token (string) ... Token pro autorizaci
oPříklad požadavku
{
"ToNumber" : "420732206714",
"MessageText" : "Ahoj",
"Token" : "abcdef"
}
SendSimpleSMSWithToken2:
Zjednodušené poslání SMS s tokenem pro autorizaci verze 2 (zjednodušená návratová hodnota - string)
•Url: <bázová URL>/SendSimpleSMSWithToken2
•Response: Description ze standardní odpovědi (pouze string)
SendSMS:
Pokročilé poslání SMS
•Url: <bázová URL>/SendSMS
•Metoda: POST
•Request
oAtributy
▪FromNumber(string) ... Číslo odesílatele
▪ToNumber (string) ... Cílové telefonní číslo
▪MessageType (číslo typu) ... Typ zprávy (TextMessage = 0, Binary = 1, MMS = 2, DataSms = 4)
▪MessageText (string) ... Text SMS
▪ReportLevel (číslo typu) ... Úroveň reportů (NoReports = 0, SendError = 1, SendInformation = 2, SendAndDeliveryInformation = 3)
▪Priority (číslo typu) ... Priorita SMS (Default = 4, Low = 1, Normal = 4, High = 16, UltraHigh = 64)
▪ViaLine (string) ... Název požadované odesílací linky
▪AllowReroute (bool) ... Povolení/zakázání přesměrování na jinou linku
▪DisplayOnly (bool) ... SMS pouze na displej
▪Schedule (DateTime?) ... Požadovaný čas odeslání SMS (nullable) ve formátu "/Date(<unix_expoch_ms>)/" (UTC) popř. "/Date(<unix_expoch_ms>+<cokoliv_ignorováno>)/" (LOCAL) víc |viz dokumenace
▪Expiration (int?) ... Expirace zprávy (nullable)
▪UserAppId (string) ... ID SMS zprávy v systémech odesilatele, hodnota bude vrácena v reportech, max. 100 znaků
▪MaxLength (int) ... Max. počet dílků SMS, na který se může text rozdělit. 0 = dle nastavení systému.
oPříklad požadavku (specifikovány jen některé atributy)
{
"ToNumber" : "420732206714",
"MessageText" : "Ahoj se application id",
"UserAppId": "USERAPP-MX-REST",
"MessageType": 4,
"ReportLevel": 0
}
SendSMSWithToken:
Pokročilé poslání SMS s tokenem pro autorizaci
•Url: <bázová URL>/SendSMSWithToken
•Metoda: POST
•Request
oAtributy stejně jako u SendSMS + navíc
▪Token (string) ... Token pro autorizaci
SendSMSWithToken2:
Pokročilé poslání SMS s tokenem pro autorizaci verze 2 (zjednodušená návratová hodnota - string)
•Url: <bázová URL>/SendSMSWithToken2
•Response: Description ze standardní odpovědi (pouze string)
•Ostatní stejné jako SendSMS
SendSMSEx:
Rozšíření posílání SMS
•Url: <bázová URL>/SendSMSEx
•Metoda: POST
•Request
oAtributy
▪FromNumber(string) ... Číslo odesílatele
▪ToNumber (string) ... Cílové telefonní číslo
▪MessageType (číslo typu) ... Typ zprávy (TextMessage = 0, Binary = 1, MMS = 2, DataSms = 4)
▪MessageText (string) ... Text SMS
▪ReportLevel (číslo typu) ... Úroveň reportů (NoReports = 0, SendError = 1, SendInformation = 2, SendAndDeliveryInformation = 3)
▪Priority (číslo typu) ... Priorita SMS (Default = 4, Low = 1, Normal = 4, High = 16, UltraHigh = 64)
▪ViaLine (string) ... Název požadované odesílací linky
▪AllowReroute (bool) ... Povolení/zakázání přesměrování na jinou linku
▪DisplayOnly (bool) ... SMS pouze na displej
▪Schedule (DateTime?) ... Požadovaný čas odeslání SMS (nullable) ve formátu "/Date(<unix_expoch_ms>)/" (UTC) popř. "/Date(<unix_expoch_ms>+<cokoliv_ignorováno>)/" (LOCAL) víc dokumenace
▪Expiration (int?) ... Expirace zprávy (nullable)
▪UserAppId (string) ... ID SMS zprávy v systémech odesilatele, hodnota bude vrácena v reportech, max. 100 znaků
▪MaxLength (int) ... Max. počet dílků SMS, na který se může text rozdělit. 0 = dle nastavení systému.
▪MessageId (string) ... ID zprávy v odesílajícím systému pro případné dohledávání
▪GateWayType (string) ... typ gatewaye
▪Subject (string) ... předmět zprávy
▪FromName (string) ... logon name přihlášeného uživatele
▪FromEmail (string) ... odesílatel (sender) - identifikuje uživatele (obvykle aplikaci), který zprávu fakticky odeslal
▪FromSMTP (string) ... email adresa přihlášeného uživatele (tedy toho ZA kterého WS posílá tuto zprávu)
▪ReplyRequired (int?) ... nastavení nutnosti odpovědi
▪NoModify (int?) ... nemodifikovat text zprávy? (má vliv na doplnění hlaviček do textu SMS)
▪DontSaveText (int?) ... uložit subjekt/text zprávy do archívu
▪FixDr (int?) ... změna nastavení DR u uživatele
▪FixNdr (int?) ... změna nastavení NDR u uživatele
▪FixInfoMail (int?) ... změna nastavení infomailu u uživatele
▪RequireUnicode (string) ... použít Unicode SMS?
oPříklad požadavku (specifikovány jen některé atributy)
{
"ToNumber" : "420732206714",
"MessageText" : "Ahoj se application id",
"UserAppId": "USERAPP-MX-REST",
"MessageId": "MESSAGEID-MX-REST",
"MessageType": 4,
"ReportLevel": 0,
"Schedule": "/Date(1670414368057+0500)/"
}
SendSMSExWithToken:
Rozšíření posílání SMS s tokenem pro autorizaci
•Url: <bázová URL>/SendSMSExWithToken
•Metoda: POST
•Request
oAtributy viz SendSMSEx + navíc
▪Token (string) ... Token pro autorizaci
•Ostatní analogické s SendSMSEx
SendSMSWithToken2:
Rozšíření posílání SMS s tokenem pro autorizaci verze 2 (zjednodušená návratová hodnota - string)
•Url: <bázová URL>/SendSMSExWithToken2
•Response: Description ze standardní odpovědi (pouze string)
•Ostatní stejné jako SendSMSExWithToken
ReadMessages:
Načtení záznamů z fronty zpráv
•Url: <bázová URL>/ReadMessages?applicationName={applicationName}&maxRecordsCount={maxRecordsCount}
•Metoda: GET
•Request
oAtributy v URL
▪applicationName (string) ... Název aplikace - NEPOUŽITO
▪maxRecodsCount (int) ... Maximální počet záznamů k načtení - velikost dávky
•Response
oAtributy
▪Messages (IncomingMessage) ... Seznam příchozích zpráv
▪Atributy IncomingMessage
•Id (long) ... TODO
•Type (IncomingMessageType) ... TODO Vychází ze statusu zprávy viz MX_SMS_SEND_STATUS
•SmsType (SmsType) ... Typ zprávy (TextMessage = 0, Binary = 1, MMS = 2, DataSms = 4)
•UserApplicationId (long) ... TODO je vyplněno pouze u zpráv přijatých přes O2 Premium SMS ovladač, popis a formát je zde UMS/Funkční_specifikace/MobilChange#Premium_sms_rec.231050
•LineName (string) ... TODO
•MessageText (string) ... TODO
•MessageBinary (string) ... TODO PDU u binárních příchozích sms u textových příchozích zde může být header z pdu ve formátu např.: header:050003020201_header:050003020202 (vícedílná sms)
•FromNumber (string) ... TODO
•ToNumber (string) ... TODO
•RecordTime (DateTime) ... RecordTime nebo DateTime.MinValue.ToUniversal() ve formátu "/Date(<unix_expoch_ms>)/" (pro MinValue bude záporné číslo)
•Operator (string) ... ID zdrojového operátora
oPříklad
{"Messages": [
{
"FromNumber": "666555444",
"Id": 14,
"LineName": "LINE1",
"MessageBinary": null,
"MessageText": "Ahoj došla",
"Operator": null,
"RecordTime": "/Date(-62135596800000)/",
"SmsType": 0,
"ToNumber": "777222333",
"Type": 10,
"UserApplicationId": 0
},
{
"FromNumber": "666555444",
"Id": 15,
"LineName": "LINE1",
"MessageBinary": null,
"MessageText": "Ahoj došla",
"Operator": null,
"RecordTime": "/Date(-62135596800000)/",
"SmsType": 0,
"ToNumber": "777222333",
"Type": 10,
"UserApplicationId": 0
}
]}
ReadMessagesWithToken:
Načtení záznamů z fronty zpráv s tokenem pro autorizaci
•Url: <bázová URL>/ReadMessagesWithToken?applicationName={applicationName}&maxRecordsCount={maxRecordsCount}&token={token}
•Metoda: GET
•Request
oAtributy v URL
▪applicationName (string) ... Název aplikace
▪maxRecodsCount (int) ... Maximální počet záznamů k načtení - velikost dávky
▪token (string) ... Token pro autorizaci
ConfirmMessages:
Potvrzení převzetí zpráv získaných metodou #ReadMessages
•Url: <bázová URL>/ConfirmMessages
•Metoda: POST
•Request
oAtributy
▪MessageIdentificators (pole long) ... Identifikátory zpráv
oPříklad požadavku
{
"MessageIdentificators": [ 33, 34 ]
}
ConfirmMessagesWithToken:
Potvrzení převzetí zpráv získaných metodou #ReadMessages s tokenem pro authorizaci
•Url: <bázová URL>/ConfirmMessagesWithToken
•Metoda: POST
•Request
oAtributy
▪MessageIdentificators (pole long) ... Identifikátory zpráv
▪Token (string) ... Token pro autorizaci
oPříklad požadavku
{
"MessageIdentificators": [ 33, 34 ],
"Token": "abcdef"
}
GetLineNames:
Vrátí seznam linek MX
•Url: <bázová URL>/GetLineNames
•Metoda: GET
•Request
oAtributy - žádní
•Response
oSeznam linek jako pole řetězců nebo prázdný JSON
oPříklad
[
"A",
"B"
]
GetLineNamesWithToken:
Vrátí seznam linek MX (varianta s tokenem pro autorizaci)
•Url: <bázová URL>/GetLineNamesWithToken?token={token}
•Metoda: GET
•Request
oAtributy v URL
▪token (string) ... Token pro autorizaci
•Response
oSeznam linek jako pole řetězců nebo prázdný JSON
oPříklad
[
"A",
"B"
]
GetSentMessagesInfo:
Vrátí počet zpráv na lince v určitém statusu
•Url: <bázová URL>/GetSentMessagesInfo?lineName={lineName}&status={status}
•Metoda: GET
•Request
oAtributy v URL
▪lineName (string) ... Název linky
▪status (int) ... Status zprávy MX SMS SEND STATUS, pozor - některé statusy nemusí znát (nebyly domimplementovány) -> pak může vracet nesprávné hodnoty.
•Response
oPočet zpráv (int)
oPříklad
0
GetSentMessagesInfoWithToken:
Vrátí počet zpráv na lince v určitém statusu (varianta s token autorizací
•Url: <bázová URL>/GetSentMessagesInfoWithToken?lineName={lineName}&status={status}&token={token}
•Metoda: GET
•Request
oAtributy v URL
▪lineName (string) ... Název linky
▪status (int) ... Status zprávy MX SMS SEND STATUS, pozor - některé statusy nemusí znát (nebyly domimplementovány) -> pak může vracet nesprávné hodnoty.
▪token (string) ... Token pro autorizaci
•Response
oPočet zpráv (int)
oPříklad
0