Úvod do režimu SMS PDU
Operátoři mobilních sítí a poskytovatelé SMS služeb používají protokol SMS k přenosu SMS zpráv mezi síťovými entitami. Protokol SMS umožňuje mobilním zařízením odesílat a přijímat SMS. SMS odeslané mobilním zařízením se nazývají Mobile Originated (MO) SMS. SMS přijaté mobilním zařízením se nazývají Mobile Terminated (MT) SMS. Tato příručka poskytuje informace o tom, jak mobilní telefony kódují MO a MT SMS zprávy, jinými slovy, jak formulují Protocol Data Units (PDU) pro odesílání a přijímání zpráv přes síť.
Úvod
Režim PDU umožňuje odesílání binárních informací ve formátu 7-bit nebo 8-bit. To je užitečné, pokud potřebujete odeslat komprimovaná data, binární data nebo chcete vytvořit vlastní kódování znaků v binárním bitovém proudu. Pokud se vrátíte ke starému kódování Fernschreiberu, pak je potřeba pouze 5 bitů k odeslání alfanumerického textu. Pomocí 5-bitového kódování můžete obsahovat 224 znaků místo 160 znaků v 7-bitovém textovém režimu. Dalším důvodem může být odesílání celočíselných dat.
Pokud chcete mít plnou kontrolu nad svými přenášenými daty v textovém režimu, musíte porozumět režimu PDU, protože existuje několik příkazů, kde můžete nastavit číselné parametry, které mění způsob odesílání a přijímání SMS v textovém režimu také.
Upozorňujeme, že existuje několik rozdílů v implementaci režimu PDU a dalších AT příkazů.
SMS zpráva, jak je specifikována organizací Etsi (dokumenty GSM 03.40 a GSM 03.38), může mít až 160 znaků, kde každý znak je 7 bitů podle výchozí 7-bitové abecedy. Osmibitové zprávy (max 140 znaků) obvykle nejsou na telefonech zobrazitelné jako textové zprávy; místo toho se používají pro data, např. v chytrých zprávách (obrázky a vyzváněcí tóny) a OTA nastavení WAP. 16-bitové zprávy (max 70 znaků) se používají pro Unicode (UCS2) textové zprávy, které jsou zobrazitelné na většině telefonů. 16-bitová textová zpráva třídy 0 se na některých telefonech zobrazí jako Flash SMS (neboli blikající SMS nebo výstražná SMS).
Formát PDU
Existují dva způsoby odesílání a přijímání SMS zpráv; textový režim a režim PDU (protocol description unit). Textový režim (není k dispozici na některých telefonech) je jen kódování bitového proudu reprezentovaného režimem PDU. Abecedy se mohou lišit a existuje několik kódovacích alternativ při zobrazování SMS zprávy. Nejběžnější možnosti jsou; "PCCP437", "PCDN", "8859-1", "IRA" a "GSM". Všechny jsou nastaveny příkazem AT+CSCS, když čtete zprávu v počítačové aplikaci. Pokud čtete zprávu na svém telefonu, telefon zvolí vhodné kódování. Aplikace schopná číst příchozí SMS zprávy tedy může použít textový režim nebo režim PDU. Pokud je použit textový režim, aplikace je vázána (nebo omezena) na sadu přednastavených kódovacích možností. V některých případech to prostě nestačí. Pokud je použit režim PDU, lze implementovat jakékoli kódování.
Příjem zprávy v PDU režimu
PDU řetězec obsahuje nejen samotnou zprávu, ale také mnoho metainformací o odesílateli, jeho SMS centru, časovém razítku atd. Vše je ve formě hexadecimálních oktetů nebo decimálních semi-oktetů. Následující řetězec jsem obdržel na Nokia 6110 při odeslání zprávy obsahující "hellohello" z www.mtn.co.za.
07 |
917238010010F5 |
040BC87238880900F100009930925161958003C16010 |
Tato sekvence oktetů se skládá ze tří částí: Počáteční oktet udávající délku informace o SMSC ("07"), samotné informace o SMSC ("917238010010F5") a části SMS_DELIVER (definované ETSI v GSM 03.40).
! Poznámka: Na některých telefonech (např. Ericsson 888?) jsou první tři (barevné) části vynechány při zobrazení zprávy v PDU režimu !
Oktet(y) | Popis |
---|---|
07 |
Délka informace o SMSC (v tomto případě 7 oktetů) |
91 |
Typ adresy SMSC. (91 znamená mezinárodní formát telefonního čísla) |
72 38 01 00 10 F5 |
Číslo servisního centra (v decimálních semi-oktetech). Délka telefonního čísla je lichá (11), proto byla přidána koncová F pro vytvoření správných oktetů. Telefonní číslo tohoto servisního centra je "+27831000015". Viz níže. |
04 |
První oktet této SMS-DELIVER zprávy. |
0B |
Délka adresy. Délka čísla odesílatele (0B hex = 11 dec) |
C8 |
Typ adresy čísla odesílatele |
72 38 88 09 00 F1 |
Číslo odesílatele (decimální semi-oktety), s koncovou F |
00 |
TP-PID. Identifikátor protokolu. |
00 |
TP-DCS Schéma kódování dat |
99 30 92 51 61 95 80 |
TP-SCTS. Časové razítko (semi-oktety) |
0A |
TP-UDL. Délka uživatelských dat, délka zprávy. Pole TP-DCS indikuje 7bitová data, takže délka zde je počet septet (10). Pokud by pole TP-DCS bylo nastaveno na 8bitová data nebo Unicode, délka by byla počet oktet (9). |
E8329BFD4697D9EC37 |
TP-UD. Zpráva "hellohello", 8bitové oktety reprezentující 7bitová data. |
Všechny výše uvedené oktety jsou hexadecimální 8bitové oktety, kromě čísla servisního centra, čísla odesílatele a časového razítka; ty jsou decimální semi-oktety. Část zprávy na konci PDU řetězce se skládá z hexadecimálních 8bitových oktet, ale tyto oktety reprezentují 7bitová data (viz níže). Semi-oktety jsou decimální a např. číslo odesílatele se získá vnitřním prohozením semi-oktet z "72 38 88 09 00 F1" na "27 83 88 90 00 1F". Délka telefonního čísla je lichá, takže správná sekvence oktet nemůže být tímto číslem vytvořena. To je důvod, proč byla přidána koncová F. Časové razítko, po rozložení, odpovídá "99 03 29 15 16 59 08", kde prvních 6 znaků reprezentuje datum, následujících 6 reprezentuje čas a poslední dva reprezentují časové pásmo vzhledem k GMT.
Interpretace 8bitových oktet jako 7bitových zpráv
Tato transformace je podrobně popsána v GSM 03.38 a příklad transformace "hellohello" je zde ukázán. Transformace je založena na 7bitové výchozí abecedě, ale aplikace postavená na PDU režimu může použít jakékoli kódování znaků.
Odesílání zprávy v PDU režimu
Následující příklad ukazuje, jak odeslat zprávu "hellohello" v PDU režimu z Nokia 6110.
AT+CMGF=0 //Nastavit PDU režim
AT+CSMS=0 //Zkontrolovat, zda modem podporuje SMS příkazy
AT+CMGS=23 //Odeslat zprávu, 23 oktet (kromě dvou počátečních nul) >0011000B916407281553F80000AA0AE8329BFD4697D9EC37V této zprávě je 23 oktet (46 'znaků'). První oktet ("00") se nepočítá, je pouze indikátorem délky informace o SMSC (0). PDU řetězec se skládá z následujícího:
Oktet(y) | Popis |
---|---|
00 |
Délka informace o SMSC. Zde je délka 0, což znamená, že by mělo být použito SMSC uložené v telefonu. Poznámka: Tento oktet je volitelný. Na některých telefonech by měl být tento oktet vynechán! (Použití SMSC uloženého v telefonu je tedy implicitní) |
11 |
První oktet zprávy SMS-SUBMIT. |
00 |
TP-Message-Reference. Hodnota "00" zde nechává telefon nastavit referenční číslo zprávy sám. |
0B |
Délka adresy. Délka telefonního čísla (11) |
91 |
Typ adresy. (91 indikuje mezinárodní formát telefonního čísla). |
6407281553F8 |
Telefonní číslo v semi-oktetech (46708251358). Délka telefonního čísla je lichá (11), proto byla přidána koncová F, jako by telefonní číslo bylo "46708251358F". Použití neznámého formátu (tj. Typ adresy 81 místo 91) by vedlo k sekvenci oktet telefonního čísla 7080523185 (0708251358). Všimněte si, že to má délku 10 (A), která je sudá. |
00 |
TP-PID. Identifikátor protokolu |
00 |
TP-DCS. Schéma kódování dat. Tato zpráva je kódována podle 7bitové výchozí abecedy. Pokud by zde bylo "02" místo "00", znamenalo by to, že pole TP-User-Data této zprávy by mělo být interpretováno jako 8bitové spíše než 7bitové (použité např. v chytrých zprávách, OTA provisioning atd.). |
AA |
TP-Validity-Period. "AA" znamená 4 dny. Poznámka: Tento oktet je volitelný, viz bity 4 a 3 prvního oktetu |
0A |
TP-User-Data-Length. Délka zprávy. Pole TP-DCS indikovalo 7bitová data, takže délka zde je počet septet (10). Pokud by pole TP-DCS bylo nastaveno na 8bitová data nebo Unicode, délka by byla počet oktet. |
E8329BFD4697D9EC3 7 |
TP-User-Data. Tyto oktety reprezentují zprávu "hellohello". Jak provést transformaci z 7bitových septet do oktet je ukázáno zde |
Úvod do textového režimu SMS
Služba krátkých zpráv SMS, jak je definována v rámci standardu digitálních mobilních telefonů GSM 900 / 1800 / 1900, má několik unikátních funkcí:
Jedna krátká zpráva může mít délku až 160 znaků (7bitově kódovaných) nebo 140 znaků (8bitově kódovaných) textu. Těchto 140 /160 znaků může sestávat ze slov nebo čísel nebo alfanumerické kombinace. Podporovány jsou také netextové krátké zprávy (například v binárním formátu). Více o tomto binárním režimu najdete na odkazu PDU režim.
Služba krátkých zpráv je služba typu store and forward, jinými slovy, krátké zprávy nejsou odesílány přímo od odesílatele k příjemci, ale vždy přes SMS centrum (SMSC). Každá mobilní telefonní síť, která podporuje SMS, má jedno nebo více zprávových center pro zpracování a správu krátkých zpráv. Více o SMSC můžete číst na odkazu SMSC.
Služba krátkých zpráv nabízí potvrzení o doručení zprávy. To znamená, že na rozdíl od pagingu, uživatelé nejen odešlou krátkou zprávu a doufají, že bude doručena. Místo toho může odesílatel krátké zprávy obdržet zpětnou zprávu, která ho informuje, zda byla krátká zpráva doručena nebo ne. Výchozí tovární parametr tohoto potvrzení od vysílače SMS k přijímači zprávy je u většiny GSM modemů VYPNUTÝ, takže neobdržíte žádné potvrzení od příjemce. Pokud jej zapnete, obdržíte potvrzení, že SMSC obdrželo zprávu a po doručení krátké zprávy příjemci obdržíte další, druhou zprávu (SMS zpět), že zpráva byla doručena do GSM telefonu nebo modemu. V této automaticky generované zprávě jsou zakódována data a čas doručení. Potvrzení, schéma kódování, čas uložení krátké zprávy v SMSC a mnoho dalšího lze nastavit pomocí příkazu AT+CSMP.
Dalším způsobem je odeslání prefixu s textovou zprávou. Tyto prefixy nejsou u různých GSM operátorů na světě stejné. U německého GSM operátora Vodafone musíte přidat *N# a u GSM operátora T-Mobil musíte přidat *T#. Zápis s AT+CSMP je u všech SMSC stejný. Zpracování s prefixem *T# nebo *N# bylo nebo je nutné, pokud chcete získat potvrzení při odeslání SMS pomocí mobilního GSM telefonu. Ne všechny mobilní telefony umožňují zapnout bit pro potvrzení.
Pokud chcete pochopit 3 parametry tohoto příkazu, musíte porozumět SMS v PDU režimu. Dalším důležitým příkazem je AT+CNMI. Říká GSM modemu, jak zacházet s příchozí krátkou zprávou.
Krátké zprávy mohou být odesílány a přijímány současně s hlasovými, datovými a faxovými hovory GSM. To je možné, protože zatímco hlasové, datové a faxové hovory zabírají vyhrazený rádiový kanál po dobu hovoru, krátké zprávy cestují přes a nad rádiovým kanálem pomocí signalizační cesty. Uživatelé SMS tak zřídka, pokud vůbec, dostanou obsazený signál, jak se může stát během špičky na síti. Pokud zapnete současný příjem SMS během datového hovoru, obdržíte řetězec SMS během faxového nebo datového hovoru.
Jsou k dispozici způsoby odesílání více krátkých zpráv. Konkatenace SMS (spojení několika krátkých zpráv dohromady) a komprese SMS (získání více než 160 znaků informací v jedné krátké zprávě) byly definovány a začleněny do standardů GSM SMS. Ne všechny možné funkce jsou implementovány všemi GSM operátory na světě. Jedna zpráva by měla fungovat všude.
Pro použití služby krátkých zpráv potřebují uživatelé relevantní předplatné a hardware, konkrétně:
Předplatné mobilní telefonní sítě, která podporuje SMS. V Německu GSM operátoři zahrnují tuto službu s každým typem předplatného.
Použití SMS musí být pro tohoto uživatele povoleno (automatický přístup k SMS poskytují někteří operátoři mobilních sítí, jiní účtují měsíční předplatné a vyžadují specifický opt-in pro použití služby). V Německu je to zahrnuto vždy.
Mobilní telefon nebo GSM modem, který podporuje SMS. Dnes to podporuje každý GSM telefon nebo GSM modem.
Znalost, jak odeslat nebo přečíst krátkou zprávu pomocí jejich konkrétního modelu mobilního telefonu nebo GSM modemu. Implementace není u každého zařízení stejná. Ne všechny GSM telefony, PCMIA modemové karty nebo GSM modemy nabízejí všechny funkce, které jsou popsány v ETSI.
Cíl pro odeslání krátké zprávy nebo přijetí zprávy je obvykle jiný mobilní telefon, ale může to být také faxový stroj nebo e-mailová adresa. V některých GSM sítích je možné převést krátkou zprávu na fax nebo e-mail.
More information
- Vysvětlení SMS protokolu
- Úvod do SMS PDU módu