Úvod do režimu SMS PDU
Mobilní operátori a poskytovatelia SMS služieb používajú protokol SMS na prenos SMS správ medzi sieťovými entitami. Protokol SMS umožňuje mobilným zariadeniam odosielať a prijímať SMS. SMS odoslané mobilným zariadením sa nazývajú Mobile Originated (MO) SMS. SMS prijaté mobilným zariadením sa nazývajú Mobile Terminated (MT) SMS. Tento sprievodca poskytuje informácie o tom, ako mobilné telefóny kódujú MO a MT SMS správy, inými slovami, ako formulujú Protocol Data Units (PDU) na odosielanie a prijímanie správ cez sieť.
Úvod
Režim PDU ponúka možnosť odosielania binárnych informácií v 7-bitovom alebo 8-bitovom formáte. To je užitočné, ak potrebujete odoslať komprimované dáta, binárne dáta alebo ak chcete vytvoriť vlastné kódovanie znakov v binárnom bitovom toku. Ak sa vrátime k starému kódovaniu Fernschreiberu, potom na odoslanie alfanumerického textu stačilo len 5 bitov. Pomocou 5-bitového kódovania môžete obsiahnuť 224 znakov namiesto 160 znakov v 7-bitovom textovom režime. Ďalším dôvodom môže byť odosielanie celočíselných dát.
Ak chcete mať úplnú kontrolu nad odosielanými dátami v textovom režime, musíte pochopiť režim PDU, pretože existuje niekoľko príkazov, kde môžete nastaviť číselné parametre, ktoré menia spôsob odosielania a prijímania SMS aj v textovom režime.
Upozorňujeme, že existujú určité rozdiely v implementácii režimu PDU a ostatných AT príkazov.
SMS správa, ako je špecifikovaná organizáciou Etsi (dokumenty GSM 03.40 a GSM 03.38), môže mať až 160 znakov, pričom každý znak má 7 bitov podľa 7-bitovej predvolenej abecedy. 8-bitové správy (maximálne 140 znakov) zvyčajne nie sú telefónmi zobrazované ako textové správy; namiesto toho sa používajú pre dáta, napr. v smart messaging (obrázky a zvukové zvonenia) a OTA nastaveniach WAP. 16-bitové správy (maximálne 70 znakov) sa používajú pre Unicode (UCS2) textové správy, ktoré sú zobraziteľné väčšinou telefónov. 16-bitová textová správa triedy 0 sa na niektorých telefónoch zobrazí ako Flash SMS (tiež známa ako blikajúca SMS alebo výstražná SMS).
Formát PDU
Existujú dva spôsoby odosielania a prijímania SMS správ; textový režim a režim PDU (protocol description unit). Textový režim (nie je dostupný na niektorých telefónoch) je len kódovaním bitového toku reprezentovaného režimom PDU. Abecedy sa môžu líšiť a existuje niekoľko kódovacích alternatív pri zobrazovaní SMS správy. Najbežnejšie možnosti sú; "PCCP437", "PCDN", "8859-1", "IRA" a "GSM". Všetky sú nastavené príkazom AT+CSCS, keď čítate správu v počítačovej aplikácii. Ak čítate správu na telefóne, telefón si vyberie vhodné kódovanie. Aplikácia schopná čítať prichádzajúce SMS správy môže teda použiť textový režim alebo režim PDU. Ak sa použije textový režim, aplikácia je viazaná (alebo obmedzená) na množinu prednastavených kódovacích možností. V niektorých prípadoch to jednoducho nestačí. Ak sa použije režim PDU, môže byť implementované ľubovoľné kódovanie.
Prijatie správy v PDU móde
PDU reťazec obsahuje nielen správu, ale aj množstvo metainformácií o odosielateľovi, jeho SMS servisnom stredisku, časovej pečiatke atď. Všetko je vo forme hexadecimálnych oktetov alebo decimálnych semi-oktetov. Nasledujúci reťazec som prijal na Nokia 6110 pri odosielaní správy obsahujúcej "hellohello" z www.mtn.co.za.
07 |
917238010010F5 |
040BC87238880900F100009930925161958003C16010 |
Táto sekvencia oktetov pozostáva z troch častí: Počiatočný oktet udávajúci dĺžku informácií SMSC ("07"), samotné informácie SMSC ("917238010010F5") a časť SMS_DELIVER (špecifikovaná ETSI v GSM 03.40).
! Poznámka: na niektorých telefónoch (napr. Ericsson 888?) sú prvé tri (farebné) časti vynechané pri zobrazení správy v PDU móde !
Oktety | Popis |
---|---|
07 |
Dĺžka informácií SMSC (v tomto prípade 7 oktetov) |
91 |
Typ adresy SMSC. (91 znamená medzinárodný formát telefónneho čísla) |
72 38 01 00 10 F5 |
Číslo servisného centra (v decimálnych semi-oktetoch). Dĺžka telefónneho čísla je nepárna (11), takže bol pridaný koncový F na vytvorenie správnych oktetov. Telefónne číslo tohto servisného centra je "+27831000015". Viď nižšie. |
04 |
Prvý oktet tejto správy SMS-DELIVER. |
0B |
Dĺžka adresy. Dĺžka čísla odosielateľa (0B hex = 11 dec) |
C8 |
Typ adresy čísla odosielateľa |
72 38 88 09 00 F1 |
Číslo odosielateľa (decimálne semi-oktety), s koncovým F |
00 |
TP-PID. Identifikátor protokolu. |
00 |
TP-DCS Schéma kódovania dát |
99 30 92 51 61 95 80 |
TP-SCTS. Časová pečiatka (semi-oktety) |
0A |
TP-UDL. Dĺžka používateľských dát, dĺžka správy. Pole TP-DCS indikuje 7-bitové dáta, takže dĺžka je počet septet (10). Ak by pole TP-DCS bolo nastavené na indikáciu 8-bitových dát alebo Unicode, dĺžka by bola počet oktetov (9). |
E8329BFD4697D9EC37 |
TP-UD. Správa "hellohello", 8-bitové oktety reprezentujúce 7-bitové dáta. |
Všetky vyššie uvedené oktety sú hexadecimálne 8-bitové oktety, okrem čísla servisného centra, čísla odosielateľa a časovej pečiatky; tie sú decimálne semi-oktety. Časť správy na konci PDU reťazca pozostáva z hexadecimálnych 8-bitových oktetov, ale tieto oktety reprezentujú 7-bitové dáta (viď nižšie). Semi-oktety sú decimálne a napríklad číslo odosielateľa sa získa vnútorným prehodením semi-oktetov z "72 38 88 09 00 F1" na "27 83 88 90 00 1F". Dĺžka telefónneho čísla je nepárna, takže správna sekvencia oktetov nemôže byť vytvorená z tohto čísla. To je dôvod, prečo bol pridaný koncový F. Časová pečiatka, po spracovaní, sa rovná "99 03 29 15 16 59 08", kde prvých 6 znakov predstavuje dátum, nasledujúcich 6 predstavuje čas a posledné dva predstavujú časové pásmo vo vzťahu k GMT.
Interpretácia 8-bitových oktetov ako 7-bitových správ
Táto transformácia je podrobne opísaná v GSM 03.38 a príklad transformácie "hellohello" je zobrazený tu. Transformácia je založená na 7-bitovej predvolenej abecede, ale aplikácia postavená na PDU móde môže použiť akékoľvek kódovanie znakov.
Odosielanie správy v PDU móde
Nasledujúci príklad ukazuje, ako odoslať správu "hellohello" v PDU móde z Nokia 6110.
AT+CMGF=0 //Nastavenie PDU módu
AT+CSMS=0 //Kontrola, či modem podporuje SMS príkazy
AT+CMGS=23 //Odoslanie správy, 23 oktetov (okrem dvoch počiatočných núl) >0011000B916407281553F80000AA0AE8329BFD4697D9EC37V tejto správe je 23 oktetov (46 'znakov'). Prvý oktet ("00") sa nepočíta, je to len indikátor dĺžky dodaných informácií SMSC (0). PDU reťazec pozostáva z nasledujúceho:
Oktety | Popis |
---|---|
00 |
Dĺžka informácií SMSC. Tu je dĺžka 0, čo znamená, že by sa malo použiť SMSC uložené v telefóne. Poznámka: Tento oktet je voliteľný. Na niektorých telefónoch by mal byť tento oktet vynechaný! (Použitie SMSC uloženého v telefóne je teda implicitné) |
11 |
Prvý oktet správy SMS-SUBMIT. |
00 |
TP-Message-Reference. Hodnota "00" tu umožňuje telefónu nastaviť referenčné číslo správy samostatne. |
0B |
Dĺžka adresy. Dĺžka telefónneho čísla (11) |
91 |
Typ adresy. (91 indikuje medzinárodný formát telefónneho čísla). |
6407281553F8 |
Telefónne číslo v semi-oktetoch (46708251358). Dĺžka telefónneho čísla je nepárna (11), preto bol pridaný koncový F, ako keby telefónne číslo bolo "46708251358F". Použitie neznámeho formátu (t.j. Typ adresy 81 namiesto 91) by viedlo k sekvencii oktetov telefónneho čísla 7080523185 (0708251358). Všimnite si, že to má dĺžku 10 (A), čo je párne. |
00 |
TP-PID. Identifikátor protokolu |
00 |
TP-DCS. Schéma kódovania dát. Táto správa je zakódovaná podľa 7-bitovej predvolenej abecedy. Ak by tu bolo "02" namiesto "00", indikovalo by to, že pole TP-User-Data tejto správy by malo byť interpretované ako 8-bitové a nie 7-bitové (používané napr. v smart messaging, OTA provisioning atď.). |
AA |
TP-Validity-Period. "AA" znamená 4 dni. Poznámka: Tento oktet je voliteľný, pozri bity 4 a 3 prvého oktetu |
0A |
TP-User-Data-Length. Dĺžka správy. Pole TP-DCS indikovalo 7-bitové dáta, takže dĺžka je počet septet (10). Ak by pole TP-DCS bolo nastavené na 8-bitové dáta alebo Unicode, dĺžka by bola počet oktetov. |
E8329BFD4697D9EC3 7 |
TP-User-Data. Tieto oktety reprezentujú správu "hellohello". Ako vykonať transformáciu zo 7-bitových septet na oktety je zobrazené tu |
Úvod do SMS textového módu
Služba krátkych správ SMS, ako je definovaná v rámci štandardu digitálnych mobilných telefónov GSM 900 / 1800 / 1900, má niekoľko unikátnych vlastností:
Jedna krátka správa môže mať až 160 znakov (7-bitovo kódovaných) alebo 140 znakov (8-bitovo kódovaných) textu. Týchto 140 /160 znakov môže pozostávať zo slov alebo čísel alebo alfanumerickej kombinácie. Podporované sú aj ne-textové krátke správy (napríklad v binárnom formáte). Viac o tomto binárnom móde nájdete na odkaze PDU mód.
Služba krátkych správ je služba typu store and forward, inými slovami, krátke správy nie sú odosielané priamo od odosielateľa k príjemcovi, ale vždy cez SMS centrum (SMSC). Každá mobilná telefónna sieť, ktorá podporuje SMS, má jedno alebo viac správacích centier na spracovanie a správu krátkych správ. Viac o SMSC si môžete prečítať na odkaze SMSC.
Služba krátkych správ ponúka potvrdenie o doručení správy. To znamená, že na rozdiel od pagingu, používatelia jednoducho neodošlú krátku správu a nedúfajú, že bude doručená. Namiesto toho môže odosielateľ krátkej správy dostať spätnú správu, ktorá ho informuje o tom, či bola krátka správa doručená alebo nie. Predvolený továrenský parameter tohto potvrdenia od vysielača SMS k prijímateľovi správy je u väčšiny GSM modemov VYPNUTÝ, takže nedostanete žiadne potvrdenie od prijímateľa. Ak ho zapnete, dostanete potvrdenie, že SMSC prijalo správu a po doručení krátkej správy prijímateľovi dostanete dodatočnú, druhú správu (SMS spätne), že správa bola doručená do GSM telefónu alebo modemu. V tejto automaticky generovanej správe sú zakódované dátum a čas doručenia. Potvrdenie, schéma kódovania, čas uloženia krátkej správy v SMSC a mnoho ďalšieho sa nastavuje príkazom AT+CSMP.
Ďalším spôsobom je odoslanie predpony s textovou správou. Tieto predpony nie sú rovnaké u rôznych GSM operátorov na svete. U nemeckého GSM operátora Vodafone musíte pridať *N# a u GSM operátora T-Mobil musíte pridať *T#. Zápis s AT+CSMP je rovnaký vo všetkých SMSC. Spracovanie s predponou *T# alebo *N# bolo alebo je potrebné, ak by ste chceli dostať potvrdenie pri odosielaní SMS s mobilným GSM telefónom. Nie všetky mobilné telefóny môžu prepnúť bit pre potvrdenie.
Ak chcete pochopiť 3 parametre tohto príkazu, musíte pochopiť SMS v PDU móde. Ďalším dôležitým príkazom je AT+CNMI. Hovorí GSM modemu, ako spracovať prichádzajúcu krátku správu.
Krátke správy môžu byť odosielané a prijímané súčasne s GSM hlasovými, dátovými a faxovými hovormi. Je to možné preto, že zatiaľ čo hlasové, dátové a faxové hovory zaberajú vyhradený rádiový kanál počas trvania hovoru, krátke správy cestujú cez a nad rádiovým kanálom pomocou signalizačnej cesty. Preto používatelia SMS len zriedka, ak vôbec, dostanú zaneprázdnený signál, ako sa to môže stať počas špičkového využitia siete. Ak zapnete súčasné prijímanie SMS počas dátového hovoru, dostanete reťazec SMS počas faxového alebo dátového hovoru.
Sú dostupné spôsoby odosielania viacerých krátkych správ. Konkatenácia SMS (spájanie niekoľkých krátkych správ dohromady) a kompresia SMS (získanie viac ako 160 znakov informácií v jednej krátkej správe) boli definované a začlenené do štandardov GSM SMS. Nie všetky možné funkcie sú implementované všetkými GSM operátormi na svete. Jedna správa by mala fungovať všade.
Na používanie služby krátkych správ potrebujú používatelia relevantné predplatné a hardvér, konkrétne:
Predplatné mobilnej telefónnej siete, ktorá podporuje SMS. V Nemecku GSM operátori zaraďujú túto službu do každého typu predplatného.
Používanie SMS musí byť pre daného používateľa povolené (automatický prístup k SMS poskytujú niektorí operátori mobilných sietí, iní si účtujú mesačné predplatné a vyžadujú špecifický opt-in na používanie služby). V Nemecku je to zahrnuté vždy.
Mobilný telefón alebo GSM modem, ktorý podporuje SMS. Dnes to podporuje každý GSM telefón alebo GSM modem.
Vedomosti o tom, ako odoslať alebo prečítať krátku správu pomocou ich konkrétneho modelu mobilného telefónu alebo GSM modemu. Implementácia nie je rovnaká u každého zariadenia. Nie všetky GSM telefóny, PCMIA modemové karty alebo GSM modemy ponúkajú všetky funkcie, ktoré sú opísané v ETSI.
Cieľ na odoslanie krátkej správy alebo prijatie správy je zvyčajne iný mobilný telefón, ale môže to byť aj faxový stroj alebo e-mailová adresa. V niektorých GSM sieťach je možné previesť krátku správu na fax alebo e-mail.
More information
- SMS Protocol explained
- Introduction to SMS PDU Mode