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

  1. Připojte SMPP klienta
  2. Přihlaste se jako transceiver
  3. Odešlete SMS pomocí PDU submit_sm
  4. Zaznamenejte ID SMS z odpovědi submit_sm_resp
  5. Počkejte, až SMS dorazí do mobilního zařízení
  6. Přijměte PDU doručovací zprávy SMS
  7. Přiřaďte ID SMS k odeslané zprávě
  8. 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 1Bit 0Význam
00žádné potvrzení
01potvrzení vyžádáno při konečném výsledku úspěšného nebo neúspěšného doručení
10potvrzení vyžádáno při konečném výsledku neúspěšného doručení
11potvrzení 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.
Je důležité si uvědomit, že "doručovací zpráva" obecně odkazuje na tuto potvrzovací SMS, kterou obdrží odesílatel. Ne všechny mobilní sítě nabízejí doručovací zprávy a některé vyžadují aktivaci uživatelem.

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.
Zatímco některé mobilní sítě nabízejí možnost přímo nastavit dobu platnosti pro odchozí zprávy, výchozí nastavení je často maximální hodnota sítě (obvykle jeden týden). Tuto hodnotu lze upravit prostřednictvím vestavěných možností menu telefonu.

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