Popis PDU
Tato kapitola se zabývá podrobnějším popisem formátu PDU, který slouží pro transport krátkých textových zpráv.
PDU datagram je vlastně záznam obsahující souhrn údajů potřebných pro transport krátkých textových zpráv. Kromě vlastního textu zprávy obsahuje informace pro směrování zprávy, pro kódování a dekódování různého "nákladu", časová data apod.
MS: Mobile Station | SM-AL: Short Message Aplication Layer |
SME: Short Message Entity | SM-TL: Short Message Transport Layer |
SMSC: Short Message Service Center | SM-RL: Short Message Relay Layer |
MMI: Man Machine Interface | SM-LL: Short Message Link Layer |
PDUs: Protocol Data Units |
Obrázek 5: Vrstevný model přenosu SMS
Rozhraní pro komunikaci s uživatelem (MMI) je založeno na množině AT+C příkazů (rozšířená množina pro celulární sítě viz. [GSM-07.07]) a může být realizováno pomocí terminálu (Telix, ...) anebo displejem mobilního telefonu.
Přenosová vrstva SM-TL poskytuje služby aplikační vrstvě SM-AL. Tyto služby umožňují SM-AL přenášet krátké zprávy protilehlé entitě, přijímat zprávy od této entity a také přijímat výsledné zprávy o předchozích požadavcích na transport krátkých zpráv.
SM-TL komunikuje pomocí šesti různých datagramů PDU (Protocol Data Unit), jsou to: SMS-DELIVER, SMS-DELIVER REPORT, SMS-SUBMIT, SMS-SUBMIT REPORT, SMS-STATUS REPORT a SMS-COMMAND. Jejich hlavni funkce a směr ve kterém se používají tyto rozdílné typy jsou popsány v tabulce.
PDU typ | Směr | Funkce |
SMS-DELIVER | SMSC => mobilní telefon | doručí krátkou zprávu |
SMS-DELIVER REPORT | Mobilní telefon => SMSC | doručí příčinu selhání (pokud je to nutné) |
SMS-SUBMIT | Mobilní telefon => SMSC | doručí krátkou zprávu |
SMS-SUBMIT REPORT | SMSC => mobilní telefon | doručí příčinu selhání (pokud je to nutné) |
SMS-STATUS REPORT | SMSC => mobilní telefon | doručí hlášení o stavu |
SMS-COMMAND | Mobilní telefon => SMSC | doručí příkaz |
Hlavní úlohou SMS-DELIVER a SMS-SUBMIT je doručit aktuální data zprávy a k tomu přidružené informace mezi jednotlivými SMS zařízeními (mobilní stanice a SMSC). SMS-STATUS REPORT nese informaci jestli zpráva byla či nebyla doručena aktuálnímu adresátovi a kdy se tak stalo. SMS-COMMAND obsahuje příkaz, který se provede na předešlém SMS-SUBMIT (například smazání již odeslané zprávy či zrušení čekání na vyžádaný status report).
V této práci se budou využívat PDU datagramy SMS-DELIVER pro přijmutí a SMS-SUBMIT pro odeslání krátké textové zprávy. Pro svou cestu sítí GSM jsou vybaveny celou řadou parametrů, jimž se tato sekce bude dále věnovat. Na níže uvedených obrázcích je naznačena vnitřní bitová struktura datagramů.
Protocol Data Unit typ (PDU typ)
SMS-SUBMIT: SMS-DELIVER:
Obrázek 8: Schéma PDU typů SMS-SUBMIT a SMS-DELIVER
PDU typ tvoří první byte datagramu a obsahuje následující údaje:
Pole RP (Reply-Path) indikuje, že odpověď na tuto zprávu je placena původcem této zprávy a její příjemce může odpovědět bezplatně. Tento parametr byl definován pro případy, kdy se vyzyvatel ptá na něco příjemce a nechce, aby měl adresát zprávy nějaké výlohy s odpovědí. V SMS může být tato volba aktivována pouze zasílatelem zprávy.
UDHI (User Data Header Indication) informuje o přítomnosti hlavičky na začátku pole uživatelských dat (UD).
Parametr SRI (Status Report Indication) ukazuje zda bude status report zaslána zpět k původci krátké textové zprávy. To znamená, že v okamžiku doručení k adresátovi bude vygenerován report, který bude zaslán zpět jako potvrzení příjmu. Toto pole je nastavováno pouze v SMSC.
SRR (Status Report Request) oznamuje, že odesílatel krátké textové zprávy požaduje potvrzení o doručení. Pokud byla zpráva doručena během doby platnosti, pak původce zprávy dostane pozitivní odpověď spolu s časem kdy byla přijata. Jestliže zpráva nemůže být doručena i po vypršení časové platnosti je původci odesláno chybové hlášení spolu s důvodem proč zpráva nebyla zaslána.
Pole VPF (Validity Period Format) popisuje jestli je položka VP (Validity Period) přítomna v datagramu a pokud ano, tak v jakém formátu je uložena, zda v relativním či v absolutním.
Položka MMS (More Messages to Send) určuje zda pro daného adresáta jsou v SMSC uloženy ještě další zprávy. To může nastat například v případě, že mobilní stanice je dlouho vypnuta a v SMSC se nahromadí větší množství zpráv. Základní princip, který je schován za tímto parametrem, spočívá ve využití už jednou zbudovaného spojení na kontrolním kanále pro transport více SMS zpráv najednou. To samozřejmě snižuje obsazení kontrolního kanálu, ale i zkracuje čas potřebný pro přenos více zpráv.
RD (Reject Duplicate) znemožňuje SMSC příjem datagramu SMS-SUBMIT pro krátkou zprávu, která je ještě držena v SMSC a která má stejné pole MR (Message Reference) a DA (Destination Address) jako předešlá odeslaná zpráva od stejného původce.
Parametr MTI (Message Type Indicator) je 2-bitová hodnota popisující druh zprávy obsažené v datagramu PDU.
bit1 |
bit0 |
typ zprávy |
0 |
0 |
SMS-DELIVER (SMSC ==> MS) |
0 |
0 |
SMS-DELIVER REPORT (MS ==> SMSC) |
0 |
1 |
SMS-SUBMIT (MS ==> SMSC) |
0 |
1 |
SMS-SUBMIT REPORT (SMSC ==> MS) |
1 |
0 |
SMS-STATUS REPORT (SMSC ==> MS) |
1 |
0 |
SMS-COMMAND (MS ==> SMSC) |
1 |
1 |
rezervováno |
Tabulka 6: Message Type Indicator
Message Reference MR
Položka MR udává číslo (0..255) reprezentující referenční číslo SMS-SUBMIT datagramů v posloupnosti zpráv, jenž byly z mobilní stanice odeslány do SMSC. Toto pole je použito, když je z SMSC vysláno hlášení o stavu (STATUS REPORT) na MS.
Originator Adress OA a Destination Adress DA
Pole OA obsahuje adresu odesílatele dané zprávy. Pokud je původce jiný mobilní telefon, pak je položka OA aktuální telefonní číslo specifické mobilní stanice. Mnoho dnešních telefonů zjistí, že tato adresa je telefonní číslo a nabídne svým uživatelům možnost vytočit přímo toto číslo místo toho, aby bylo nutno psát odpověď, což je vhodné v okamžiku, kdy adresát nechce ztrácet čas se psaním odpovědi jako SMS zprávy. Položka DA má úplně stejný formát jako OA.
V prvním bytu je uložena délka čísla, což je v zásadě počet BCD číslic. Pak následují dva byty které určují formát telefonního čísla, tj zda je v národním či mezinárodním formátu (blíže viz. [GSM-04.08]). Poslední pole BCD-digit obsahuje BCD-číslo adresáta či odesílatele, jestliže telefonní číslo je tvořeno lichým počtem číslic, pak poslední číslice by měla být vyplněna koncovým znakem "FH". Pro příklad národní číslo 1234567 se zapíše jako 0781214365F7 (81H je kód pro národní číslo).
Protocol Identifier PID
V PID je informace podle které se SMSC rozhoduje ve kterém formátu či pomocí jakého protokolu má být krátká zpráva doručena. Jsou zde dvě základní varianty. První je přenos zprávy mezi dvěma mobilními telefony v GSM síti, které nepotřebuje žádné speciální zacházení, protože používá pouze vyšší vrstvy. Druhou možností je spolupráce s telematickými službami jiných sítí a pak musí být krátká zpráva "přeložena" do jiného formátu. Uživatel mobilního telefonu může, pokud mu to jeho přístroj dovolí, nastavovat PID. Na místě je však upozornění, že ne každá síť podporuje každý typ protokolu. Jak ale plyne z následující tabulky, v principu nic nebrání tomu, aby byla SMS zpráva přenesena do nejrůznějších zařízení.
hodnota PID |
telematické zařízení |
0 |
implicitní hodnota, obyčejná SMS zpráva |
1 |
telex |
2 |
fax Group 3 |
3 |
fax Group 4 |
4 |
normální telefon (tj. konverze do hlasu) |
5 |
ERMES (European Radio Messaging System) |
6 |
národní pagingový systém (dle definice v SMSC) |
7 |
videotext |
8-12 |
různé typy teletexu |
13 |
Universal Computer Interface (UCI) |
14-15 |
rezervováno |
16 |
speciální zpracování podle nastaveni SMSC |
17 |
X.400 |
18-23 |
rezervováno |
24-30 |
speciální zpracování podle nastaveni SMSC |
31 |
mobilní stanice GSM (z jakéhokoliv kódování do výchozí abecedy SMS) |
Tabulka 7: Hodnoty parametru Protocol Identifier
Data Coding Scheme DCS
Položka DCS určuje kódovací schéma dat obsažených v poli UD a může indikovat třídu zprávy. Octet je používán podle skupiny kódování, která je uložena v bitech 7..4. Celý octet je kódován takto:
Skupina kódování: bity 7..4 |
bity 3..0 |
0000 | indikace abecedy nespecifikované zpracování zprávy MS 0000 výchozí abeceda (7-bitový kód v User Data) 0001-1111 reservováno |
0001-1110 | rezervované skupiny kódování |
1111 | kódování dat/třídy zpráv bit 3 rezervován, nastaven na 0 bit 2 (kódování zprávy) 0 výchozí abeceda (7-bitový kód v User Data) 1 8-bitová data v User Data bit 1 bit 0 (třídy zpráv) 0 0 Class0 ihned zobrazit 0 1 Class1 uložit do ME (SIM) 1 0 Class2 specifická zpráva pro SIM 1 1 Class3 uložit do TE |
Tabulka 8: Skupiny kódování UD
Při použití výchozí abecedy je pole User Data kódováno pomocí 7-bitové abecedy, která je uvedena v příloze. Pokud je tato abeceda použita je osm znaků zprávy zapakováno do sedmi bytů a zpráva může obsahovat až 160 znaků (místo 140 při 8-bitovém kódu). V 8-bitovém kódování je použita klasická intelovská ASCII-HEX tabulka. Ve třídě 0 (okamžité zobrazení) je krátká zpráva psána přímo na displej. Ve třídách 1 až 3 je krátká zpráva uložena v několika zařízeních: ME (mobilní telefon), SIM karta (ukládání pouze speciálních údajů), TE (externí zařízení připojené k ME, např. palmtop).
Service Center Time Stamp SCTS
Časovým razítkem SCTS informuje SMSC příjemce MS o čase, kdy byla krátká zpráva doručena transportní vrstvou do SMSC. Tato časová hodnota je uložena v každé zprávě SMS-DELIVER, která je doručována na MS a reprezentuje místní čas dle schématu na obrázku.
Parametr Time Zone obsahuje rozdíl ve čtvrthodinách mezi místním časem a GMT (Greenwich Main Time). Jinými slovy podle tohoto údaje může každý, kdo obdrží SMS zprávu, zjistit, kdy byla odeslána, či přesněji, kdy byla přijmuta SMSC.
Validity Period VP
Položka Validity-Period obsahuje informaci, která umožňuje MS posílající SMS-SUBMIT zprávu do SMSC specifikovat časový úsek, po který je daná zpráva platná, tj. jak dlouho by SMSC mělo garantovat existenci zprávy ve své paměti před tím, než vyprší čas na doručení této zprávy. Často je ale tento parametr centrem krátkých zpráv ignorován a je nastavována hodnota na maximum určené správou SMSC.
Pole VP je zadáno buď jako číslo anebo jako semi-octet. V prvním případě obsahuje pouze jeden byte, udávající délku časového úseku držení zprávy v SMSC od doby, kdy je SMS-SUBMIT přijmuta do SMSC. V druhém případě je v položce VP uloženo 7 bytů udávajících absolutní čas, do kdy má SMS existovat.
V prvním případě je čas reprezentován způsobem popsaným v tabulce, kdežto v druhém případě je formát času identický s reprezentací SCTS. Způsob reprezentace VP (absolutní/relativní) je nastaven pomocí parametru VPF v PDU typu.
hodnota VP | velikost časového úseku |
0-143 | (VP + 1) x 5 minut (tj. 5 minutové intervaly do 12 hodin) |
144-167 | 12 hodin + ((VP-143) x 30 minut) |
168-196 | (VP-166) x 1 dnů |
197-255 | (VP - 192) x 1 týdnů |
Tabulka 9: Relativní zadání VP
User Data Length UDL a User Data UD
Parametr UDL udává počet znaků, které v poli UD následují, přičemž záleží na tom, jaké je použito kódovací schéma. Jestliže jde o 8-bitové kódování znaků je UDL totožná s počtem bytů, pokud jde o výchozí SMS 7-bitové kódování je počet bytů menší než počet znaků. Položka UD obsahuje aktuální zakódovanou zprávu s maximální délkou 140 bytů (či 160 znaků).
Další detailnější informace týkající se Protocol Data Unit (PDU) lze nalézt ve standardu [GSM-03.40].