GSM 03.40
GSM 03.40 nebo 3GPP TS 23.040 je standard popisující formát protokolových datových jednotek () protokolu Short Message Transfer Protocol (SM-TP) používaného v GSM sítích pro přenos krátkých (textových) zpráv. GSM 03.40 se používá především pro přenos zpráv mobilní sítí GSM; aplikační servery používají pro přenos zpráv jiné protokoly, jako Short Message Peer to Peer nebo Universal Computer Protocol.

GSM 03.40 je původní jméno standardu. Od roku 1999 je vyvíjen organizací 3GPP pod jménem 3GPP TS 23.040. V praxi se však původní jméno často používá i pro označení nových verzí 3GPP standardu.

Použití 

Protokolové datové jednotky (TPDU) GSM 03.40 se používají pro přenos zpráv mezi mobilní stanicí (MS) a Mobile Switching Centre (MSC) pomocí Short Message Relay Protocol (SM-RP),; mezi MSC a střediskem krátkých textových zpráv (SMS centrum) jsou přenášeny jako parametr Mobile Application Part (MAP) zpráv.

V nastupujících sítích, které používají IP Multimedia Subsystem (IMS), jsou textové zprávy přenášeny v MESSAGE příkazu protokolu Session Initiation Protocol (SIP). I v těchto sítích založených na protokolu IP existuje možnost, při které se (z důvodu kompatibility) přenášejí krátké textové zprávy v GSM 03.40 formátu vloženém v 3GPP 24.011 jako Content-Type: application/vnd.3gpp.sms.

Typy zpráv 

GSM 03.40 definuje 6 typů zpráv, které jsou rozlišeny 2 nejméně významnými bity v prvním oktetu zprávy SM-TP (v poli TP-MTI) a směrem přenosu zprávy:

SMS-SUBMIT slouží k odeslání () zprávy z mobilního telefonu () na středisko krátkých textových zpráv (SMS centrum, SMSC, SC, MC).

SMS-COMMAND lze použít pro dotaz na zprávy uložené v SMS centru, pro změnu jejich parametrů nebo pro jejich smazání.

SMS-DELIVER se používá pro doručení zprávy z SMS centra na mobilní telefon. Potvrzení vrácené mobilním telefonem může obsahovat SMS-DELIVER-REPORT. Je-li použit SMS home routing, používá se SMS-DELIVER i pro přenos zprávy z jednoho SMS centra na jiné.

Na každý požadavek na přenos zprávy posílá příjemce potvrzení. Toto potvrzení však nemusí vždy obsahovat GSM 03.40 TPDU.

SMS-SUBMIT-REPORT je potvrzení zprávy SMS-SUBMIT; úspěch znamená, že zpráva byla uložena v SMS centru, selhání znamená, že SMS centrum zprávu zamítlo.

SMS centrum může poslat SMS-STATUS-REPORT pro informování mobilního telefonu odesilatele o výsledku doručení zprávy nebo jako odpověď na SMS-COMMAND.

Struktura TPDU 

Pole SM-TP zprávy včetně jejich pořadí a velikosti jsou shrnuta v následující tabulce, kde M znamená povinné pole, O nepovinné pole, E se používá pro pole, která jsou povinná v záporných odezvách (RP-ERR) a nepřítomná v kladných odezvách (RP-ACK), x je pole přítomné na jiném místě (v různých typech zpráv jsou pole v různém pořadí):

První oktet TPDU obsahuje různé příznaky včetně pole TP-MTI popsaného výše:

Nastavením bitu TP-More-Messages-to-Send (TP-MMS) na 0 (obrácená logika), SMS centrum signalizuje, že má pro tohoto příjemce více zpráv (často to jsou další segmenty sřetězené zprávy). V tomto případě MSC obvykle nezavře spojení na mobilní telefon a neukončí MAP dialog s SMS centrem, což umožňuje rychlejší doručení dalších zpráv nebo segmentů. Pokud by mezitím došlo k odstranění těchto zpráv z SMS centra (pokud jsou například smazány), SMS centrum ukončí MAP dialog zprávou MAP Abort.

Bit TP-Loop-Prevention (TP-LP) má zabránit zacyklení zpráv SMS-DELIVER nebo SMS-STATUS-REPORT směrovaných na jiné adresy, než je cílová adresa původní zprávy nebo generované aplikací. Takovou zprávu lze poslat, pouze pokud původní zpráva měla tento příznak vynulovaný. Nová zpráva musí být poslána s nastaveným příznakem.

Nastavením bitu TP-Status-Report-Indication (TP-SRI) na 1 SMS centrum vyžaduje vrácení status report na SME.

Nastavením bitu TP-Status-Report-Požadavek (TP-SRR) na 1 v SMS-SUBMIT nebo SMS-COMMAND vyžaduje mobilní telefon, aby SMS centrum vrátilo status report.

Když TP-SRQ má ve zprávě SMS-STATUS-REPORT hodnotu 1, je zpráva výsledkem SMS-COMMAND; jinak je výsledkem SMS-SUBMIT.

Když má TP-UDHI hodnotu 1, pole TP-UD začíná hlavičkou User Data Header.

Nastavením bitu TP-RP se žádá o vytvoření spojení pro poslání odpovědi stejnou cestou, jakou přišla původní zpráva. Pokud domovská síť odesilatele a příjemce není stejná, odpovědi by procházely jiným SMS centrem. Mobilní operátor musí věnovat zvláštní pozornost účtování takových zpráv.

Na každý přenos zprávy odpovídá protistrana potvrzením (). Potvrzení nemusí vždy obsahovat GSM 03.40 TPDU, protože protokoly SM-RP i MAP, pomocí kterých se TPDU přenášejí, obsahují dostatek informací pro informování o výsledku požadavku. Potvrzení může Nicméně GSM 03.40 TPDU může být obsažený v potvrzení na přenášejí dokonce více informace. GSM 03.40 prošlo následujícím vývojem:

 GSM 03.40 do verze 5.2.0 uvádí, že se SMS-DELIVER-REPORT a SMS-SUBMIT-REPORT mají posílat pouze v případě chyby. Od verze 5.3.0 se mají posílat i v případě úspěchu.
 GSM 03.40 do verze 6.0.0 uvádí, že SMS-DELIVER-REPORT a SMS-SUBMIT-REPORT posílané v případě chyby mají obsahovat pouze pole TP-MTI a TP-FCS, a že poslední pole v SMS-STATUS-REPORT má být TP-ST. Od verze 6.1.0 mají tyto TPDU formát uvedený v tabulce výše.

Ačkoli tyto změny jsou poměrně staré (verze 6.1.0 byla vydána v červenci 1998), staré formáty MAP zpráv se v některých sítích stále používají.

Obsah zprávy 

Obsah zprávy (její text, pokud zpráva není binární) je přenášen v poli TP-UD. Jeho velikost může být až 160 x 7 = 140 x 8 = 1120 bitů. Delší zprávy mohou být rozloženy na více částí a poslány jako zřetězená zpráva (). Délka obsahu zprávy je uvedena v poli TP-UDL. Když zpráva používá sedmibitovou implicitní abecedu GSM (závisí na poli TP-DCS), udává pole TP-UDL délku pole TP-UD v 7bitových jednotkách; jinak TP-UDL udává délku pole TP-UD v oktetech.

Když TP-UDHI je 1, TP-UD začíná User Data Header (UDH); v tomto případě první oktet TP-UD obsahuje UDHL - délku UDH v oktetech bez samotného UDHL. UDH ubírá prostor z pole TP-UD. Je-li UDH přítomné ve zprávě v sedmibitové implicitní abecedě GSM, vloží se za UDH výplňkové bity, které zarovnávají začátek prvního znaku textu za UDH na hranici septetu. Díky tomu bylo možné uspokojivě zobrazovat zprávy s UDH i na starších telefonech; takové telefony zobrazí UDH jako změť divných znaků následovanou textem zprávy; pokud první znak po UDH je Carriage Return (CR), telefon by měl tuto změť přepsat textem zprávy.

Adresy 

GSM 03.40 zpráva obsahuje nejvýše jednu adresu: adresu příjemce (TP-DA) v SMS-SUBMIT a SMS-COMMAND, adresu odesilatele (TP-OA) v SMS-DELIVER a adresu příjemce (TP-RA) v SMS-STATUS-REPORT. Ostatní adresy jsou přenášeny nižších vrstvách.

Formát GSM 03.40 adres shrnuje následující tabulka:

Typ čísla ():

Pokud odesilatel vloží telefonní číslo začínající znakem `+', znak `+' bude odstraněn a adresa dostane TON=1 (mezinárodní číslo), NPI=1. V tomto případě musí číslo vždy začínat kódem země a musí být zformátovaná přesně podle standardu E.164.

Pokud odesilatel vloží telefonní číslo bez úvodního znaku `+', adresa dostane TON=0 (neznámé), NPI=1. V tomto případě číslo musí odpovídat číslovacímu plánu mobilního operátora, což znamená, že mezinárodní čísla musí mít mezinárodní prefix (v většině zemí 00, v USA 011) před kódem země a čísla pro meziměstské volání musí začínat meziměstským prefixem (, ve většině zemí 0, v USA 1, v ČR bylo zrušeno při přečíslování v roce 2001) následovaným kódem oblasti ().

Identifikace číslovacího plánu ():

Telefonní čísla musí mít NPI=1. Aplikační servery mohou používat alfanumerické adresy, které mají kombinaci TON=5, NPI=0.

Bit EXT má hodnotu vždy 1 - "žádné rozšíření".

Příklady adres 

Americké číslo +1 555 123 4567 bude zakódováno jako 0B 91 51 55 21 43 65 F7 (F v horních čtyřech bitech posledního oktetu je výplňková hodnota, která se používán, když číslo obsahuje lichý počet číslic).

Alfanumerická adresa je vyjádřena v sedmibitové implicitní abecedě GSM a je zakódována stejným způsobem jako text zprávy v poli TP-UD (což znamená, že je 7bitově zpakována), před adresou je oktet s délkou (ve čtveřicích bitů) a oktetem s hodnotami TON a NPI.

Například alfanumerická adresa Design@Home se zkonvertuje do sedmibitové implicitní abecedy GSM, což dává 11 bytů s hexadecimálními hodnotami 44 65 73 69 67 6E 00 48 6F 6D 65, 7bitové pakování převede tuto hodnotu na 77 bitů uložených v 10 oktetech jako C4 F2 3C 7D 76 03 90 EF 76 19; 77 bitů je 20 nibblů (14 hex), což bude hodnota prvního oktetu adresy. Druhý oktet bude obsahovat TON (5) a NPI (0), což dává D0 hex. Úplná adresa v GSM formátu je 14 D0 C4 F2 3C 7D 76 03 90 EF 76 19.

Message Reference 

Pole Message Reference (TP-MR) se používá ve zprávách odesílaných z mobilního zařízení (SMS-SUBMIT, SMS-COMMAND) a v SMS-SUBMIT-REPORT. Je jednobytová hodnota, které se zvyšuje o jedničku při odeslání každé nové zprávy nebo poslání nového SMS-COMMAND. Jestliže odeslání zprávy selže, mobilní telefon musí při opakovaném odeslání téže zprávy použít stejnou hodnotu TP-MR a zároveň nastavit bit TP-RD na hodnotu 1.

Formát času 

Datum a čas používaný v polích TP-SCTS, TP-DT a jako absolutní formát pole TP-VP se skládá ze 7 oktetů:

Ve všech oktetech jsou hodnoty uloženy v BCD formátu s přehozenými číslicemi (číslo 35 je uloženo jako 53 hex).

Časová zóna je zadána ve čtvrtinách hodin. Na západní polokouli je hodnota v časové zóně záporná, což je signalizováno nastavením bitu 3 posledního oktetu na hodnotu 1.

Časový údaj 25. března 2013 23:01:56 PST (GMT-7) bude zakódovaný jako 31 30 52 32 10 65 8A.

Doba platnosti 

SMS-SUBMIT TPDU může obsahovat parametr TP-VP, který omezuje časový interval, v němž se SMS centrum bude snažit zprávu doručit. Tento časový interval obvykle nemůže přesáhnout globální konfigurační parametr SMS centra, který bývá 48 nebo 72 hodin. Formát pole Validity Period určuje pole Validity Period Format (TP-VPF):

Relativní formát

Absolutní formát 

Absolutní formát je shodný s formátem časových údajů v jiných polích čas formáty v GSM 03.40 TPDU.

Vylepšený formát 

Vylepšený formát () pole TP-VP se používá zřídka. Má vždy 7 oktetů, ale některé z nich nejsou používány. První oktet je TP-VP Funkcionality Indicator. Jeho 3 nejméně významné bity mají následující význam:

Hodnota 1 v bitu 6 prvního oktetu znamená, že zpráva je Single-shot. Hodnota 1 v bitu 7 prvního oktet indikuje, že TP-VP Funktionality Indicator pokračuje v dalším oktetu. Žádné takové rozšíření však není definované.

Identifikátor protokolu 

Identifikátor protokolu () buď udává, jaký protokol vyšší vrstvy je použit, indikuje interworking s určitým typem telematického zařízení (jako fax, telex, pager, teletex, e-mail), stanovuje, že zpráva má přepsat předchozí zprávu z téže skupiny, nebo umožňuje přenést konfigurační parametry do SIM karty. Obyčejné zprávy z mobilního telefonu na mobilní telefon () mají TP-PID=0.

Pro TP-PID = 63 SMS centrum konvertuje zprávu z přijatého Data Coding Scheme do libovolného kódování podporované tímto MS (například do implicitní).

Short Message Type 0 je známý jako silent SMS. Jakýkoli telefon musí být schopen takovéto krátké zprávy přijímat, bez ohledu na to, zda je paměť pro příjem zpráv v (U)SIM nebo telefonu volná, musí potvrdit její doručení, ale její obsah musí být zahozen a její přijetí nesmí být uživateli indikováno.

Kódování zprávy 

Pro SMS v GSM bylo navrženo speciální 7bitové kódování nazývané sedmibitová implicitní abeceda GSM (). Abeceda obsahuje nejpoužívanější symboly západoevropských jazyků (a některé velká písmena řecké abecedy). Některé ASCII znaky a Euro sign se nevcházejí do sedmibitové implicitní abecedy GSM a musí být zakódovány pomocí dvou septetů. Tyto znaky tvoří rozšiřující tabulku sedmibitové implicitní abecedy GSM. Pro mobilní telefony a síťové prvky GSM je podpora GSM 7bitové abeceda povinná.

Jazyky, které používají latinku a používající znaky, které nejsou přítomné v sedmibitové implicitní abecedě GSM, často nahrazují chybějící znaky s diakritikou odpovídajícími znaky bez diakritiky, což je pro mnoho uživatelů přijatelné. Pro dosažení lepšího vzhledu zprávy je třeba používat 16bitové kódování UTF-16 (v GSM nazývané UCS-2); tím se však sníží maximální délka (nesegmentované) zprávy ze 160 na 70 znaků.

Zprávy v čínštině, korejštině nebo japonštině jazyky musí být zakódovány pomocí znakového kódu UTF-16. To platí také pro jiné jazyky používající jiné písmo než latinku, jako je ruština, arabština, hebrejština a různé indické jazyky. Od verze 3GPP TS 23.038 8.0.0 publikované v roce 2008 existuje možnost používání národních tabulek, které ve verze 11.0.0 publikované v roce 2012 pokrývá turečtinu, španělštinu, portugalštinu, bengálštinu, hindštinu, malajštinu, paňdžábštinu, tamilštinu, urdštinu, telugštinu, gudžarátštinu, kannadštinu a orijštinu. Mechanismus národních tabulek nahrazuje kódovou tabulku sedmibitové implicitní abecedy GSM a/nebo rozšířenou tabulku za národní tabulku nebo tabulky podle hodnoty speciálních informačních prvků v User Data Header. Nesegmentované zprávy používající národní tabulky mohou přenášet až 155 (nebo 153) 7bitových znaků.

Pole Data Coding Scheme (TP-DCS) obsahuje primárně informace o kódování zprávy. GSM definuje pouze 2 kódování pro textové zprávy a 1 kódování pro binární zprávy:

 Sedmibitová implicitní abeceda GSM, včetně případného použití národních tabulek ()
 UCS-2 (ve skutečnosti UTF-16)
 8bitová data

TP-DCS oktet má složitou strukturu a obsahuje i další informace než o kódování zprávy; nejvýznamnější je třída zprávy:

Flash zprávy jsou přijaté mobilním telefonem, i když má plnou paměť zpráv. Nejsou ukládány v telefonu, ale jsou pouze zobrazeny na displeji.

Další vlastnost dostupná pomocí TP-DCS je automatické smazání: zpráva je po přečtení automaticky vymazána z telefonu.

Skupina DCS hodnot Message Waiting Indication Group slouží k nastavování nebo nulování příznaků indikujících přítomnost nepřečtené voicemail, faxové, e-mailové nebo jiné zprávy.

Speciální DCS hodnoty také umožňují zkrácení zprávy díky kompresi; tato vlastnost však pravděpodobně není používána žádným operátorem.

Hodnoty TP-DCS jsou definovány v GSM doporučení 03.38. GSM zprávy mohou používat kódování GSM 7bit implicitní abeceda, UTF-16 (nazývané UCS-2) a nebo se může jedna o 8bitová data.

Čas poslední transakce 

Pole TP-DT indikuje čas a datum poslední transakce provedené se zprávou:

 Pokud byla zpráva úspěšně doručena nebo byla úspěšně provedena jiná transakce se zprávou (TP-ST je 0-31), je TP-DT čas dokončení transakce
 Pokud se SMS centrum stále pokouší zprávu doručit (TP-ST je 32-63), TP-DT je čas posledního pokusu o doručení
 Jestliže se SMS centrum již nebude pokoušet zprávu doručit (TP-ST je 64-127), TP-DT je buď čas posledního pokusu o doručení anebo čas odstranění zprávy z SMS centra

Parameter Indicator 

Pole TP-PI indikuje přítomnost dalších polí v SUBMIT-REPORT, DELIVER-REPORT nebo SMS-STATUS-REPORT TPDU.

Protože i v 3GPP TS 23.040 V15.2.0 vydané v září 2018 jsou v poli TP-PI stále 4 volné bity, lze očekávat, že bit indikující rozšíření bude nulový i v budoucnosti, což lze použít pro rozlišení pole TP-PI od pole TP-FCS, když není dostupná informace z nižší vrstvy, zda TPDU je částí kladné nebo záporné odezvy; jestliže nejvýznamnější bit druhého oktetu TPDU je 1, je druhý oktet TP-FCS (v záporné odezvě), jinak je TP-PI (v kladné odezvě).

Reference

Související články 
 SMS (Short Message Service)
 Enhanced Messaging Service (EMS)
 MMS (Multimedia Messaging Service)
 Technická realizace SMS
 Short Message Peer to Peer
 Universal Computer Protocol

GSM