Formát SMPP doručovací zprávy
SMPP doručovací zprávy jsou odesílány SMPP serverem na SMPP klienta poté, co byla textová zpráva úspěšně doručena do mobilního zařízení. Původní SMS je odeslána SMPP klientem pomocí smpp submit_sm požadavku. Když je submit_sm přijat SMPP serverem, vrátí odpověď submit_sm_resp s referenčním ID SMS. Doručovací zpráva přijde později. Obsahuje čas doručení a referenční ID SMS, které identifikuje SMS. Níže uvedený dokument vysvětluje obsah PDU SMPP doručovací zprávy a uvádí příklad doručovací zprávy.
Jaký je formát SMPP doručovací zprávy
SMPP doručovací zpráva je přijata jako standardní textová zpráva. Text zprávy má speciální formát, který obsahuje různá pole o původně odeslané SMS. Tato pole lze použít k určení stavu doručení SMS.
Příklad doručovací zprávy
Doručovací zpráva přijata. +44251234567->+0000000 'Doručeno; Komu: +44251234567; V: 2022-10-03 12:07:00; Ref: 636445148; id:636445148 sub:000 dlvrd:001 submit date:2210031207 done date:2210031207 stat:DELIVRD err: text:' Úspěšné doručení nahlášeno na admin@localhost. ID úlohy: cdfd66e1-880e-4ead-a559-7ca46d9ec669. Doručeno; Komu: +44251234567; V: 2022-10-03 12:07:00; Ref: 636445148; id:636445148 sub:000 dlvrd:001 submit date:2210031207 done date:2210031207 stat:DELIVRD err: text:
Jak přijmout SMPP doručovací zprávu
Pro přijetí SMPP doručovací zprávy
- Připojte SMPP klienta
- Přihlaste se jako transceiver
- Odešlete SMS pomocí PDU submit_sm
- Zaznamenejte ID SMS z odpovědi submit_sm_resp
- Počkejte, až SMS dorazí do mobilního zařízení
- Přijměte PDU doručovací zprávy SMS
- Přiřaďte ID SMS k odeslané zprávě
- Zaznamenejte časové razítko doručení SMS
Parametry SMPP doručovací zprávy
SMPP podporuje doručovací potvrzení / zprávy (DLR) pro SMS zprávy, aby vaše aplikace mohla určit výsledky doručení.
Vrácení potvrzení / zprávy o doručení (DLR) závisí na hodnotě nastavené v poli registered_delivery zprávy původně odeslané z ESME do MC v operaci submit_sm. To lze nakonfigurovat pro scénáře nedoručení a pouze doručení, což může vést k situacím, kdy potvrzení nebude vráceno. Potvrzení o doručení zprávy jsou vrácena v operacích deliver_sm a data_sm.
Následující pole jsou relevantní v operacích deliver_sm a data_sm při přenosu doručovacích potvrzení.
- zdrojová adresa (tj. source_addr_ton, source_addr_npi, source_addr) - Zdrojová adresa bude převzata z cílové adresy původní krátké zprávy, která vygenerovala doručovací potvrzení. Potvrzení vypadá, jako by pocházelo od příjemce původní registrované zprávy.
- cílová adresa (tj. dest_addr_ton, dest_addr_npi, destination_addr) - Cílová adresa bude převzata ze zdrojové adresy původní krátké zprávy, která vygenerovala doručovací potvrzení. Potvrzení je adresováno SME, které původně odeslalo registrovanou zprávu.
- esm_class - Bit 2 v esm_class je nastaven na 1, aby indikoval, že zpráva je MC doručovací potvrzení. Pokud je bit 5 nastaven, pak je zpráva mezilehlé oznámení.
- message_state TLV - Označuje konečný stav původní zprávy. Viz Stavy zpráv níže.
- network_error_code TLV - Viz Chybové kódy níže.
- receipted_message_id TLV - ID zprávy, které bylo vráceno ESME MC v PDU submit_sm_resp.
MC doručovací potvrzení
Tento typ zprávy se používá k přenosu MC doručovacího potvrzení. MC při detekci konečného stavu registrované zprávy obvykle vygeneruje novou potvrzovací zprávu adresovanou odesílateli původní zprávy. MC doručovací potvrzení je poté doručeno ESME v operaci deliver_sm nebo data_sm.
ESME-to-MC: Nastavte bity 0 a 1 v poli registered_delivery operace submit_sm pro vyžádání MC doručovacího potvrzení.
Bit 1 | Bit 0 | Význam |
---|---|---|
0 | 0 | žádné potvrzení |
0 | 1 | potvrzení vyžádáno při konečném výsledku úspěšného nebo neúspěšného doručení |
1 | 0 | potvrzení vyžádáno při konečném výsledku neúspěšného doručení |
1 | 1 | potvrzení vyžádáno při konečném výsledku úspěšného doručení (pouze SMPP v5) |
MC-to-ESME: Bit 2 v poli esm_class zprávy deliver_sm indikuje, že potvrzení je MC doručovací potvrzení.
Mezilehlé oznámení
Mezilehlé oznámení je speciální forma zprávy, kterou může MC odeslat ESME pro doručení mobilní zprávy. Poskytuje mezilehlý stav pokusu o doručení zprávy.
Typické použití je k hlášení výsledku pokusů o doručení provedených během životnosti opakování zprávy v MC. To lze použít ke sledování různých důvodů, proč zpráva nebyla doručena do cíle, a k profilování dostupnosti účastníka.
Podpora funkcionality mezilehlého oznámení je specifická pro implementaci MC a poskytovatele služeb MC a je mimo rozsah této specifikace.
ESME-to-MC: Nastavte bit 4 v poli registered_delivery PDU submit_sm pro vyžádání mezilehlého oznámení.
MC-to-ESME: Bit 5 v poli esm_class zprávy deliver_sm indikuje, že potvrzení je mezilehlé oznámení.
Potvrzení v poli short_message
Mnoho API před verzí 3.4 a Message Center podporující verzi 3.3 pravděpodobně mají způsob předávání informací o potvrzení v poli short_message.
To platí pro MC Delivery Receipts a Intermediate Notifications. Specifika formátu těchto informací jsou závislá na SMS bráně a platformě SMSC a
jsou mimo rozsah této specifikace. Nicméně následující ukazuje typický přístup:
id:123A456B sub:1 dlvrd:1 submit date:1702281424 done date:1702281424 stat:DELIVRD err:0 text:
Pole jsou specifikována následovně:
Pole
Velikost (oktety)
Popis
id
Proměnná
ID zprávy přidělené zprávě SMSC při původním odeslání.
sub
3
Počet původně odeslaných krátkých zpráv. Hodnota může být doplněna úvodními nulami.
dlvrd
3
Počet doručených krátkých zpráv. Hodnota může být doplněna úvodními nulami.
submit date
10
Čas a datum odeslání krátké zprávy. V případě zprávy, která byla nahrazena,
je to datum, kdy byla původní zpráva nahrazena. Formát je následující:
RRMMDDhhmm kde:
RR poslední dvě číslice roku (00-99) MM = měsíc (01-12)
DD den (01-31)
hh hodina (00-23)
mm minuta (00-59)
done date
10
Čas a datum, kdy krátká zpráva dosáhla svého konečného stavu. Formát je stejný jako u submit date.
stat
7
Konečný stav zprávy. Viz Stavy zpráv níže. Text stavu může být zkrácen.
err
3
Kód chyby sítě nebo SMSC pro zprávu. Viz Chybové kódy níže.
text
20
Nepoužívané pole, výsledek bude prázdný.
Vylepšení Ozeki SMPP
Protože jsme implementovali velmi velký počet SMPP spojení, narazili jsme na následující problémy v různých implementacích:
Zjištění 1:
Hodnota pole ID v dodacím hlášení (které v Ozeki nazýváme
Submit Reference) se často liší od ID, které obdržíme od poskytovatele SMS služeb.
Nejčastější rozdíl je, že původní ID je vráceno jako standardní
celé číslo a ID v dodacím hlášení je vráceno jako hexadecimální číslo.
Může se to stát i naopak. Dobrou zprávou je, že v této situaci, když
jsou čísla převedena zpět, obě čísla odpovídají, takže dodací hlášení lze spárovat.
Implementace Ozeki SMS provádí různé kontroly a dokáží popsanou
situaci správně zpracovat.
Zjištění 2:
Hodnoty polí s datem často přicházejí v nestandardním formátu. Ozeki aktuálně
parsuje pole s datem pomocí následujících vzorů. Můžete také definovat vlastní
vzor pro pole s datem v konfiguračním formuláři softwaru.
- "yyMMddHHmm",
- "yyMMddHHmmss",
- "dd-MMM-yyHH:mm",
- "dd-MMM-yyHH:mm:ss",
- "dd-MMM-yy HH:mm",
- "dd-MMM-yy HH:mm:ss",
- "yyyyMMddHHmmss",
- "yyyyMMddHHmm",
- vlastní
Stavy zpráv
Následuje seznam povolených stavů pro krátkou zprávu. MC vrací hodnotu message_state do ESME jako součást PDU query_sm_resp, query_broadcast_sm_resp nebo deliver_sm doručovacího potvrzení.
Mezistavy jsou stavy, které se mohou změnit. Konečné stavy jsou stavy, které představují konečný stav životního cyklu zprávy.
Například zpráva v opakovaném pokusu může vrátit stav ENROUTE. V určitém okamžiku v budoucnu tato zpráva buď expiruje, nebo bude doručena. Stav se pak změní na EXPIRED nebo DELIVERED. Zpráva ve stavu ENROUTE je tedy považována za mezistav.
Zpráva ve stavu DELIVERED nebo EXPIRED se již nemůže změnit na jiný stav. Tyto stavy jsou tedy konečné stavy.
Stav zprávy | Hodnota | Typ |
---|---|---|
SCHEDULED | 0 | Mezistav |
Zpráva je naplánována. Doručení ještě nebylo zahájeno. Zpráva odeslaná s naplánovaným časem doručení může vrátit tento stav při dotazu. Tato hodnota byla přidána pro SMPP v5.0. MC podporující starší verze SMPP v3.3 a SMPP v3.4 pravděpodobně vrátí ENROUTE pro naplánované zprávy. | ||
ENROUTE nebo EN_ROUTE |
1 | Mezistav |
Zpráva je ve stavu enroute. Toto je obecný stav popisující zprávu jako aktivní v rámci MC. Zpráva může být v opakovaném pokusu nebo odeslána do mobilní sítě pro doručení do mobilního zařízení. | ||
DELIVERED | 2 | Konečný |
Zpráva byla doručena do cíle. Zpráva byla doručena do cílového zařízení. Žádné další pokusy o doručení nebudou provedeny. | ||
EXPIRED | 3 | Konečný |
Platnost zprávy vypršela. Zpráva nebyla doručena v rámci své platnosti a/nebo období opakovaných pokusů. Žádné další pokusy o doručení nebudou provedeny. | ||
DELETED | 4 | Konečný |
Zpráva byla smazána. Zpráva byla zrušena nebo smazána z MC. Žádné další pokusy o doručení nebudou provedeny. | ||
UNDELIVERABLE | 5 | Konečný |
Zpráva není doručitelná. Zpráva narazila na chybu při doručení a je považována za trvale nedoručitelnou. Žádné další pokusy o doručení nebudou provedeny. Určité síťové nebo interní chyby MC vedou k trvalému nedoručení zprávy. Příklady takových chyb by byly neznámý účastník nebo síťová chyba, která naznačuje, že dané cílové mobilní zařízení bylo odepřeno službě SMS nebo nepodporuje SMS. |
Chybové kódy doručovacích potvrzení SMPP
Chybové kódy vrácené v doručovacích potvrzeních slouží k označení jakékoli chybové situace, ke které došlo při pokusu o doručení zprávy. Chybové kódy jsou specifické pro SMS bránu a platformu SMSC. Následující však ukazuje běžný přístup:
Kód Význam 1 MT číslo je neznámé v HLR MT sítě 2 MT číslo je neznámé v HLR MT sítě 5 MT číslo je neznámé v MSC MT sítě 9 MT číslo je klasifikováno jako nelegální účastník v MSC MT sítě 11 MT HLR vrací chybu "Teleslužba není poskytována" v odpovědi na SRI 12 MT zařízení je uvedeno jako nelegální zařízení na MSC. 13 Zákazník je podle MT HLR blokován pro příjem SMS 15 MT zákazník je součástí CUG, který nemá povolen příjem SMS 21 SMS není podporováno v MT síti. 22 SMS není podporováno v MT MSC 31 MT zařízení je zaneprázdněno. Signalizační řídicí kanál je používán. (Pravděpodobně přijímá jinou SMS ve stejnou dobu) 32 GPRS – Stejné jako výše 34 Systémová chyba v MT síti. 35 Chybějící data v MT HLR nebo MSC 36 Neočekávaná hodnota dat přijata v odpovědi na FSM nebo SRI 40 Překročena kapacita paměti na MT zařízení 41 Chyba protokolu na MT zařízení 42 MT zařízení není vybaveno pro podporu SMS 43 Typ krátké zprávy "0" není podporován MT zařízením. 44 MT síť není schopna nahradit SMS na zařízení MT zákazníka 45 Nespecifikovaná chyba protokolu na MT zařízení 46 Třída zprávy není podporována na MT zařízení 47 Nespecifikovaná chyba DCS (Data coding scheme) na MT zařízení 48 Přenosová vrstva PDU není podporována MT zařízením 49 SIM karta na MT zařízení je plná 50 SIM karta MT zařízení není schopna uložit zprávu 51 Chyba na MT zařízení 52 Překročena kapacita paměti na MT zařízení 53 SIM aplikační toolkit je zaneprázdněn na MS zařízení 54 Chyba stahování dat SIM na zařízení MT zákazníka 55 Nespecifikovaná chyba MS zařízení 60 Nedostupný účastník. Důvod není znám 61 Nedostupný účastník kvůli vypnutému telefonu 62 Nedostupný účastník kvůli telefonu mimo dosah/vybité baterii 63 Nedostupný účastník kvůli omezení roamingu/omezené oblasti 64 Nedostupný účastník kvůli zrušení registrace v HLR 65 Nedostupný účastník kvůli vymazání v VLR (vypnuto více než 24 hodin) 66 Nedostupný účastník (GPRS) nelze stránkovat SGSN 67 Nedostupný účastník kvůli odpojení GPRS 68 Nedostupný účastník kvůli zrušení registrace v HLR (GPRS) 69 Nedostupný účastník kvůli vymazání GPRS MS v VLR 70 Nedostupný účastník kvůli neidentifikovanému účastníkovi na MSC, kam byl odeslán FSM. 71 Nedostupný účastník kvůli neidentifikovanému účastníkovi na SGSN
Jak testovat doručovací zprávy SMPP
Můžete vytvořit konfiguraci SMPP simulátoru, pro testování doručovacích zpráv SMS. V simulátoru může tester připojení vracet úspěšné a neúspěšné doručovací zprávy. Bude to dělat, pokud nakonfigurujete "Žádost o doručovací zprávu" na záložce "Pokročilé" konfiguračního formuláře SMPP Tester připojení. Pokud tuto možnost povolíte, bude pro každou odeslanou SMS vrácena doručovací zpráva v náhodném pozdějším termínu s náhodným stavem úspěšného nebo neúspěšného doručení.
Časté dotazy
Co je to doručovací zpráva?
Při odesílání SMS zprávy je potvrzení jejího doručení na telefon příjemce klíčové. SMS využívá dvoustupňový systém potvrzení, aby to zajistil.
Po odeslání zprávy do centra služby krátkých zpráv (SMSC) mobilní sítě obdržíte "zprávu o odeslání". Tato zpráva znamená, že SMSC přijalo vaši zprávu k doručení. Obsahuje také jedinečný identifikátor, často označovaný jako "referenční číslo zprávy" nebo "callback ID", který umožňuje sledování zprávy v systému SMSC.
Po přijetí je zpráva uložena v SMSC, dokud není možné ji doručit. To může být zpožděno, pokud je telefon příjemce vypnutý, což může prodloužit čekání až na dny.
Jakmile se telefon příjemce stane dostupným, zpráva je doručena. Po úspěšném doručení je "doručovací zpráva" odeslána zpět odesílateli jako samostatná SMS zpráva.
Tato potvrzovací SMS obsahuje:
- Telefonní číslo příjemce: Potvrzuje, že zpráva byla doručena zamýšlenému příjemci.
- Referenční číslo zprávy (callback ID): Odpovídá identifikátoru z původní zprávy o odeslání, což poskytuje jasné propojení mezi oběma fázemi.
- Časové razítko doručení: Poskytuje přesný čas, kdy zpráva dorazila na telefon příjemce.
Mohu upravit, jak dlouho je zpráva uložena v SMSC?
Ačkoli SMS zprávy nabízejí pohodlný způsob komunikace, je klíčové zajistit, aby zpráva dorazila k příjemci včas. Zde přichází na řadu koncept "doby platnosti".
Doba platnosti se vztahuje k časovému rámci, po který je SMS zpráva uložena v centru služby krátkých zpráv (SMSC), když je telefon příjemce nedostupný. Pokud zpráva zůstane nedoručena po uplynutí této doby, je automaticky smazána z SMSC, čímž se zabrání opožděnému doručení.
Výhody využití doby platnosti:
- Časově citlivé zprávy: Představte si, že posíláte text o časově citlivé události, jako je živý televizní program. Nastavení vhodné doby platnosti zajistí, že zpráva nebude doručena po skončení události, čímž by se stala irelevantní.
- Efektivita sítě: Tím, že zabrání zbytečným pokusům o doručení na nedostupné telefony, doba platnosti optimalizuje síťové zdroje.
Je důležité si uvědomit, že ne všechny mobilní sítě nabízejí uživatelsky konfigurovatelné doby platnosti a některé mohou vyžadovat aktivaci uživatelem pro doručovací zprávy (potvrzení, že zpráva dorazila k příjemci).
More information
- Specifikace SMPP
- Porovnání verzí SMPP protokolu
- SMPP PDU logování
- Jak používat SMPP API s programovacími jazyky
- Zabezpečené SMPP připojení přes SSL TLS
- Formát SMPP doručovací zprávy
- Co je SMPP simulátor
- Kódy chyb SMPP
- Jak odeslat testovací SMPP SMS zprávu
- Dekódování SMPP PDU
- Kódování znaků SMPP
- SMPP wireshark