User Data Header, UDH (uživatelská datová hlavička) je binární struktura, která může být přítomna na začátku SMS zpráv v GSM. Neobsahuje žádný text, ale určuje, jak má být zpráva zobrazována a zpracovávána.

UDH nejčastěji slouží pro vytváření sřetězených SMS, kdy je zpráva s délkou více než 160 sedmibitových nebo 140 osmibitových znaků rozdělena na několik částí, které lze spojit podle informací uvedených v UDH. UDH může být použito také pro obohacení obsahu zprávy o barvy, formátování textu, malé obrázky a animace a jednoduché melodie, které se používají v Enhanced Messaging Service (EMS), dále pro indikaci, že je použita národní tabulka nebo pro přenos čísel portů, které mohou způsobit start aplikace v mobilním telefonu, což se používá např. pro příjem MMS zpráv.[1]

UDH je definováno v 3GPP 23.040 (původně GSM 03.40).[2]

Technická realizace

editovat

Přítomnost UDH je indikována nastavením příznaku TP-UDHI (Indikátor hlavičky uživatelských dat protokolu transportní vrstvy), což je 6. bit prvního oktetu GSM 03.40 nebo 3GPP 23.040 zprávy, na hodnotu 1.

Obsahuje-li zpráva UDH, je UDH vždy na začátku pole TP-UD (TP-User Data) a začíná oktetem UDHL (délka UDH). Zbytek UDH je posloupnost trojic Tag-Length-Value nezývaných anglicky Information Elements, IE. Tag (návěští) se v tomto případě nazývá anglicky Information Element Identifier, IEI a je vždy 1 oktet dlouhý, Length (délka) se nazývá Information Element Length, IEL a zabírá také 1 oktet, a určuje délku vlastních dat (Information Element Data, IED) informačního prvku v oktetech.

UDH ubírá prostor z datového pole zprávy. Čím je delší UDH, tím méně prostoru zbývá pro text zprávy nebo jiný obsah. Když TP-UD obsahuje sedmibitová data, délka TP-UD je udána v septetech a UDH je zarovnáno na hranici septetu pomocí 0-6 nulových bitů. Toto zarovnání mělo u starých telefonů (které neměly podporu UDH) zabránit tomu, aby se zpráva obsahující UDH stala nečitelnou. U těchto telefonů se UDH zobrazilo jako změť nečitelných znaků na začátku zprávy; pokud zpráva začínala znakem Carriage return (<CR>), byla tato změť přepsána zbytkem zprávy, takže nijak nerušila.

Příklad

editovat

Následující tabulka ukazuje, jak je zakódováno pole TP-UD zprávy v sedmibitové implicitní abecedě GSM, které obsahuje text 'Hi' s předdefinovaným zvukem 'Vysoký akord':

Oktet TP-UD 1 2 3 4 5 6 7
Hodnota (hex) 04 0B 02 00 08 20 D3
Význam Délka UDH IEI: Předdefinovaný zvuk Délka IE Pozice Vysoký akord 6 nižších bitů 1. znaku
+ 2 výplňkové bity
7 nižších bitů 2. znaku
+ 1 horní bit prvního znaku

Celková délka zprávy uvedená v poli TP-UDL bude 8. UDH má 8 * (1 + 4) = 40 bitů, 2 bity jsou výplňkové, protože (40 + 2) / 7 = 6 beze zbytku, 2 * 7 = 14 bitů pro text; celková délka TP-UD je 40 + 2 + 14 = 56 bitů = 7 oktetů = 8 septetů.

Informační prvky UDH

editovat
IEI (hex) Význam Druh Délka Může se opakovat
00 Zřetězená zpráva s 8bitovým referenčním číslem Řízení SMS 3 ne
01 Speciální SMS Message Indication Řízení SMS 2 ano
02 Rezervováno Nedefinováno Nedefinováno ano
03 Nepoužíváno, aby se zabránilo chybné interpretaci jako znak Line feed (<LF>) Nedefinováno Nedefinováno ano
04 8bitové aplikační porty Řízení SMS 2 ne
05 16bitové aplikační porty Řízení SMS 4 ne
06 Parametry řízení SMS centra Řízení SMS 1 ne
07 Indikátor původu UDH Řízení SMS 1 ano
08 Zřetězená zpráva s 16bitovým referenčním číslem Řízení SMS 4 ne
09 Wireless Control Message Protocol Řízení SMS 1-255 ano
0A Formátování textu Řízení EMS 3-4 ano
0B Předdefinovaný zvuk EMS obsah 2 ano
0C Uživatelem definovaný zvuk (iMelody max. 128 bytů) EMS obsah 2-129 ano
0D Předdefinovaná animace EMS obsah 2 ano
0E Velká animace (16*16 krát 4 = 32*4 =128 bytů) EMS obsah 129 ano
0F Malá animace (8*8 krát 4 = 8*4 =32 bytů) EMS obsah 33 ano
10 Velký obrázek (32*32 = 128 bytů) EMS obsah 129 ano
11 Malý obrázek (16*16 = 32 bytů) EMS obsah 33 ano
12 Obrázek proměnné velikosti EMS obsah 4-255 ano
13 Indikátor uživatelské nápovědy Řízení EMS 1 ano
14 Rozšířený objekt EMS obsah 7-255 ano
15 Znovupoužitý rozšířený objekt Řízení EMS 3 ano
16 Řízení komprimace Řízení EMS 3-255 ne
17 Indikátor distribuce objektu Řízení EMS 2 ano
18 Standardní WVG objekt EMS obsah 1-255 ano
19 WVG objekt velikosti znaku EMS obsah 1-255 ano
1A rozšířený objekt Data Požadavek Příkaz Řízení EMS 0-255 ne
1B - 1F Rezervováno pro budoucí EMS vlastnosti Nedefinováno 0-255 ano
20 E-mailová hlavička podle RFC 822 Řízení SMS 1 ne
21 Prvek formátování hyperlinku Řízení SMS 0-255 ano
22 Prvek návratové adresy Řízení SMS 1-255 ne
23 Vylepšená informace o obsahu hlasové schránky Řízení SMS 0-255 ne
24 Náhrada rozšířené tabulky národní znakovou tabulkou Řízení SMS 1 ne
25 Náhrada základní tabulky národní znakovou tabulkou Řízení SMS 1 ne
26 – 6F Rezervováno pro budoucí použití Nedefinováno 0-255 Nedefinováno
70 – 7F Bezpečnostní hlavičky pro (U)SIM toolkit Řízení SMS 0-255 ?
80 – 9F Zvláštní použití SME-SME Řízení SMS 0-255 ?
A0 – BF Rezervováno pro budoucí použití Nedefinováno 0-255 ?
C0 – DF Pro zvláštní použití SMS centrem Řízení SMS 0-255 ?
E0 – FF Rezervováno pro budoucí použití Nedefinováno 0-255 ?

Použití v jiných protokolech

editovat

UDH se používá i v jiných protokolech pro přenos krátkých zpráv - Short Message Peer to Peer (SMPP), Universal Computer Protocol (UCP) a v teleservisu WEMT v CDMA2000.

Reference

editovat

V tomto článku byl použit překlad textu z článku User Data Header na anglické Wikipedii.

Související články

editovat