Technická realizace SMS
Přenos krátkých textových zpráv na rádiovém rozhraní je popsán v dokumentu 3GPP TS 24.011[1]
Služba krátkých textových zpráv (anglicky Short Message Service, SMS) využívá pro přenos zpráv Mobile Application Part (MAP) Signalizačního systému č. 7, který přenáší protokolové datové jednotky sítí jako pole MAP zpráv[2]. MAP je prakticky nerozlučně spojen s protokolem TCAP, který dodává transakční vrstvu a sám je přenášen buď tradičními TDM sítěmi, pomocí signalizačních protokolů MTP1–MTP3 a protokolu SCCP nebo IP sítěmi transportním protokolem SCTP, nad kterým jsou adaptační vrstvy SIGTRAN, použité buď přímo k přenosu protokolu SCCP nebo poskytují SCCP rozhraní (SUA – SCCP User Adaptation). Formát protokolových datových jednotek pro přenos krátkých textových zpráv definuje pro dvoubodovou komunikaci standard 3GPP TS 23.040 – Short Message Service Point to Point (SMS-PP)[3], pro broadcast zprávy standard 3GPP TS 23.041[4] Cell Broadcast Service (CBS).
Standard MAP definuje 4 procedury pro přenos krátkých textových zpráv mobilní sítí[2]:
- postup pro přenos zpráv z mobilního telefonu (anglicky Mobile Originated, MO short message service transfer)
- postup pro přenos zpráv na mobilní telefon (anglicky Mobile Terminated, MT short message service transfer)
- postup pro zasílání upozornění (anglicky alert), že mobilní telefon je opět dostupný a schopný přijímat zprávy
- postup pro udržování dat o čekajících zprávách (anglicky waiting data)
Přenos zpráv z mobilního telefonu
[editovat | editovat zdroj]![](http://upload.wikimedia.org/wikipedia/commons/thumb/b/b3/MO-submit.png/450px-MO-submit.png)
Obrázek vpravo znázorňuje zjednodušený tok zpráv při úspěšném odeslání SMS z mobilního telefonu[2].
Když účastník pošle krátkou zprávu, telefon zprávu odešle přes rádiové rozhraní na navštívenou ústřednu veřejné mobilní sítě (anglicky Visited Mobile Switching Centre, VMSC) nebo SGSN. Kromě textu zprávy se přenáší i adresa příjemce zprávy, kterou zadal účastník nebo kterou doplnil telefon podle zvoleného kontaktu v telefonním seznamu a adresa střediska krátkých textových zpráv (anglicky Short Message Service Centre, SMSC), která je uložena v konfiguračních parametrech na SIM kartě mobilního telefonu[5].
Bez ohledu na to, přes jaké rádiové rozhraní zpráva přišla, vyvolá VMSC nebo SGSN MAP službu MAP_MO_FORWARD_SHORT_MESSAGE pro poslání zprávy na Interworking MSC SMS centra, jehož adresa je uložena na SIM kartě mobilního telefonu. Služba MAP odešle MAP operaci mo-ForwardSM [Pozn 1] na SMS centrum, které použil telefon při odesílání SM. Pro odeslání je MAP zpráva vložena do TCAP zprávy, a přenesena páteřní sítí pomocí SCCP)[2].
Interworking MSC SMS centra při přijetí MAP mo-ForwardSM zprávy předá aplikační protokolovou datovou jednotku (APDU) SMS-PP[3] obsahující textovou zprávu dalším komponentám SMS centra, které zajistí její uložení a následné doručení na adresu příjemce a vrátí potvrzení indikující úspěch nebo selhání. Po jeho obdržení Interworking MSC pošle odpovídající indikaci zpět na VMSC nebo SGSN, které obsluhuje odesilatele. Výsledek odeslání zprávy je pak přenesen pomocí rádiového rozhraní až na telefon odesilatele[5][Pozn 2].
Přenos zpráv na mobilní telefon
[editovat | editovat zdroj]![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/MT-delivery.png/640px-MT-delivery.png)
Obrázek vpravo zachycuje tok zpráv při přenosu SM na mobilní telefon[2]. Pro jednoduchost byly některé z interakcí mezi VMSC a VLR, a mezi VMSC a mobilním telefonem vynechány. Obrázek také nezachycuje SMS home routing.
Když SMS centrum rozhodne, že provede pokus o doručení krátké zprávy na místo určení, zašle SMS-PP APDU obsahující textovou zprávy, telefonní číslo příjemce (tzv. „B-party“) a další podrobnosti na logickou komponentu SMS centra nazývanou Gateway MSC (GMSC)[3]. GMSC po obdržení této zprávy musí zjistit umístění příjemce zprávy, aby mu bylo možné doručit text zprávy (termín bránové MSC označuje MSC, která získává z domovského registru (HLR) informaci o směrování.
Pro doručení zprávy GMSC vyvolá MAP service package MAP_SEND_ROUTING_INFO_FOR_SM, který pošle MAP zprávu sendRoutingInfoForSM (SRI-for-SM) na HLR pro číslo adresáta zprávy a požaduje informaci o jeho aktuálním umístění. Zpráva SRI-for-SM má nastavené Subsystem Number (SSN) na 6 (HLR) a jako cílovou adresu obsahuje MSISDN příjemce. Její směrování se provádí podle prefixu MSISDN; v případě, že je pro daný rozsah čísel je použita přenositelnost mobilních čísel, uskuteční síť dotaz na Number Portability Database (NPDB), zda číslo není přeneseno k jinému operátorovi, a zpráva bude směrována podle odpovědi NPDB.
HLR vyhledá v databázi aktuální umístění příjemce zprávy (nazývaného anglicky B-Party) a vrátí odpověď GMSC interworkingu SMS centra. Aktuální poloha může být adresa MSC, u které je účastník aktuálně zaregistrován (nejen při roamingu), adresa SGSN, nebo obojí. Pokud má HLR informace, že příjemce není schopen přijímat krátké zprávy, může vrátit chybu (viz kapitola Selhání při doručování zpráv níže).
Když GMSC získá informace o umístění příjemce zprávy od HLR, pokusí se zprávu doručit adresátovi vyvoláním služby MAP_MT_FORWARD_SHORT_MESSAGE, která odešle MAP zprávu mt-ForwardSM[Pozn 3] na adresu, kterou GMSC získalo od HLR. Zpráva může být poslána na MSC (sítí s přepojováním okruhů) nebo na SGSN (sítí s přepojováním paketů).
MSC nebo SGSN, u kterého je příjemce zaregistrován, si vyžádá další informace potřebné pro doručení zprávy příjemci zasláním zprávy Send_Info_for_MT_SMS na VLR. VLR vyvolá stránkování nebo hledání mobilní stanice podle MSISDN, a výsledek vrátí na VMSC. Vzhledem k tomu, že VLR typicky tvoří jeden celek s MSC, jedná se obvykle o interní zprávu[Pozn 4]. V případě, že stránkování nebo vyhledávání stanice příjemce selže, VLR zašle VMSC informaci o příčině selhání, VMSC proces doručování SM ukončí a vrátí SMS centru chybovou indikaci (viz část Selhání při doručování zpráv níže). Pokud stránkování mobilní stanice bylo úspěšné, VMSC vrátí do SMS centra indikaci úspěšného doručení. GMSC složka SMS centra předá výsledek pokusu o doručení jádru SMS centra. Pokud se doručení zprávy podařilo, bude odstraněna z úložiště SMS centra, a pokud byla požadována doručenka, bude zaslána odesilateli původní zprávy[3]. Pokud se doručení nezdařilo, SMS centrum naplánuje další pokus o doručení (pokud se nejednalo o jednorázové nebo transakční doručování). SMS centrum může volitelně zaslat zprávu ReportSM-DeliveryStatus na HLR, kterou aktualizuje informace o připravenosti adresáta zprávy (B-party) přijímat krátké textové zprávy, jak je popsáno v následující části.
Selhání při doručování zpráv
[editovat | editovat zdroj]Pokud navštívené MSC nebo SGSN vrátí při pokusu o doručení zprávy chybu, může SMS centrum podle postupu MAP_REPORT_SM_DELIVERY_STATUS poslat na HLR zprávu, která obsahuje příčinu selhání a požadavek, aby bylo přidáno do seznamu SMS center, které mají být informovány, až bude adresát znovu schopen přijímat zprávy. HLR v informacích o adresátovi nastaví příznak indikující, že adresátovy nelze doručovat krátké textové zprávy, a adresu SMS centra uloží do seznamu dat o čekajících zprávách (anglicky Message Waiting Data, MWD) příjemce. Seznam obsahuje následující příznaky:
- mobilní stanice není dosažitelná (anglicky Mobile Not Reachable Flag, MNRF)
- mobilní stanice není dosažitelná pomocí GPRS (anglicky Mobile Not Reachable for GPRS, MNRG)
- plná paměť zpráv (anglicky Memory Capacity Exceeded Flag, MCEF)
Od tohoto okamžiku bude HLR odpovídat na požadavky SRI-for-SM chybou s uvedením důvodu selhání a automaticky přidávat adresy SMS center na seznam MWD. Pokud však zpráva SRI-for-SM bude mít nastavený příznak priority (SM-RP-PRI), bude HLR stále vracet adresu MSC, je-li známá.
Že lze účastníkovi opět doručovat zprávy, může být HLR informováno několika způsoby:
- pokud byl účastník odpojen ze sítě, připojení spustí aktualizaci polohy na HLR
- pokud byl účastník mimo pokrytí, ale neodpojen ze sítě, po návratu do pokrytí bude reagovat na požadavek stránkování z VLR. VLR pak pošle zprávu Ready-for-SM (mobilní stanice je přítomná) na HLR
- pokud MS měl plnou paměť na zprávy, a uživatel odstraní některou zprávu, pak zpráva Ready-for-SM (paměť je volná) je poslána z mobilního telefonu přes VMSC a VLR na HLR
Po obdržení indikace, že příjemce je opět připraven pro příjem krátkých zpráv, HLR pošle MAP zprávu AlertSC každému SMS centru uvedenému v seznamu MWD pro příslušného příjemce. SMS centrum by po přijetí zprávy AlertSC mělo zopakovat proces doručení[2].
SMS centrum opakuje pokusy o doručení zprávy i bez příchodu alertu. Četnost opakování závisí na příčině selhání – přechodné selhání sítě bude mít za následek rychlejší opakování doručování, zatímco nedostupnost mobilního telefonu (mimo pokrytí) obvykle vede k pomalejšímu opakování.
Alert
[editovat | editovat zdroj]Síť se snaží si zapamatovat informaci, že na mobilní telefon nelze doručit SMS, aby SMSC nepodnikalo zbytečné pokusy o doručení. Souhrn těchto informací se nazývá Message-Waiting-Indication (MWI) a je uložen v HLR (případně HSS). Dílčí informace jsou uloženy ve VLR, SGSN nebo IP-SM-GW. Struktura MWI:
- MWD (Message-Waiting-Data) je tvořeno MSISDN mobilního telefonu a seznamem adres SMSC, na které se má poslat upozornění, že SMS již lze doručit (alert)
- MCEF (Memory Station Capacity Exceeded Flag) – příznak, že mobil má plnou paměť, takže nemůže přijmout normální SMS (mohl by přijmout flash SMS)
- MNRF (Mobile Station Not Reachable Flag) – mobil není dostupný pomocí MSC
- MNRR-MSC (Mobile Station Not Reachable via the MSC Reason) – důvod, proč mobil není dostupný pomocí MSC:
- No Paging Response via the MSC – mobil sice nezrušil registraci, ale nereaguje na paging (je mimo signál nebo byl náhle vypnutý)
- IMSI Detached – mobil zrušil svoji registraci u MSC
- MNRG (Mobile Station Not Reachable Flag) – mobil není dostupný pomocí SGSN; příznak se nastaví i pokud selže PDP-Context Activation procedure; v tom případě se do MWD žádná adresa SMSC nepřidává
- MNRR-SGSN (Mobile Station Not Reachable via the SGSN Reason) – důvod, proč mobil není dostupný pomocí SGSN:
- No Paging Response via the SGSN
- GPRS Detached
- UNRI (User Equipment Not Reachable for IP) – mobil není dostupný přes IP síť
- UNRR (User Equipment Not Reachable Reason) – důvod, proč mobil není dostupný přes IP síť:
- No Response via the IP-SM-GW
- UE deregistered
Příznak MNRF je udržován i ve VLR, příznak MNRG v SGSN a příznak UNRI v IP-SM-GW.
Pokud VLR, SGSN nebo IP-SM-GW zaznamenají, že mobil, který nebyl dosažitelný, již dosažitelný je, pošlou zprávu ReadyForSM na HLR (HSS). HLR nebo HSS vynuluje příslušný příznak MNRF, MNRG nebo UNRI. Pokud v mobilu dojde k uvolnění plné paměti pro SMS, mobil pošle zprávy ReadyForSM na HLR, který vymaže příznak MCEF. Pokud na HLR přijde ReadyForSM, a po aktualizaci příznaků je aspoň jeden z příznaků MNRF, MNRG a UNRI vymazaný a zároveň je vymazaný příznak MCEF, rozešle HLR zprávy alertServiceCentre na všechna SMSC, která mají MWD. Na to by SMSC mělo provést pokus o doručení zpráv na příslušné MSISDN. Pokud pokus o doručení MT zprávy selže, SMSC by mělo zprávou SMDeliveryReportStatus oznámit problém na HLR, který si nastaví příslušné flagy v MWI.
MAP operace
[editovat | editovat zdroj]Operace | Kód | Odesilatel → Příjemce | MAP | ||
1 | 2 | 3 | |||
MT-ForwardSM | 44 | GMSC → MSC/SGSN | − | − | + |
MO-ForwardSM | 46 | MSC/SGSN → IWMSC | − | − | + |
SendRoutingInfoForSM | 45 | GMSC → HLR | + | + | + |
ForwardSM | 46 | GMSC → MSC/SGSN | + | + | − |
ForwardSM | 46 | MSC/SGSN → IWMSC | + | + | − |
ReportSM-DeliveryStatus | 47 | GMSC → HLR | + | + | + |
AlertServiceCentreWithoutRes | 49 | HLR → IWMSC | + | − | − |
InformServiceCentre | 63 | HLR → GMSC | − | + | + |
AlertServiceCentreWithResult | 64 | HLR → IWMSC | − | + | + |
InformServiceCentre
[editovat | editovat zdroj]InformServiceCentre je zpráva, kterou HLR přidává k odpovědím sendRoutingInfoForSM nebo reportSM-DeliveryStatus. Zpráva se obvykle používá pro přenos příznaků z MWD do SMSC.[2]
Protokoly pro přenos MAP
[editovat | editovat zdroj]Přestože je v 3GPP standardu pro MAP patrné určité úsilí o oddělení protokolu MAP od vrstvy, která jej má přenášet, prakticky neexistuje jiná možnost než používat MAP s protokolem TCAP a pro přenos používat buď SCCP s protokoly MTP 1-3, nebo protokoly SIGTRAN (SUA, M3UA atd.).
Konstrukt MAP_OPEN je tedy vždy spojen s TCAP_BEGIN pomocí aplikačního kontextu MAP, a MAP_CLOSE s TCAP_END.
Pokud se doručují zprávy pomocí MAP fáze 2 nebo vyšší nad MTP, může omezení maximální velikosti protokolové jednotky MTP způsobit, že odesílatel musí použít segmentaci. Segmentace v tomto případě nevede k rozdělení zprávy na části jako u konkatenovaných SM, ale znamená, že transakce mezi MSC nebo SGSN a SMS centrem se bude skládat z většího počtu kroků než obvykle. Doporučený způsob[2] je zahájit dialog TCAP_BEGIN bez MAP zprávy, a vlastní SM v MAP poslat až v TCAP CONTINUE odeslaném po přijetí odpovědi na zahájení komunikace. Příjemce potvrdí přijetí zprávy pomocí TCAP_END nebo potvrdí přijetí a požádá o zaslání další zprávy TCAP CONTINUE. TCAP_BEGIN obsahuje informace, které by mohly způsobit překročení velikosti paketu kvůli většímu rozsahu dat v MAP 2. Přesný bod, kdy je segmentace nutná, závisí na faktorech, jako je délka adresy, ale je závislá hlavně na délce samotné zprávy. TCAP segmentaci je nutné uplatnit na zprávy, které mají 140 znaků nebo více (v 7bit default alphabet).
TCAP segmentace se také stále více rozšiřuje jako nástroj proti SMS spoofingu. Principem je, že SM se dopravuje až v odpovědi na odpověď, takže adresa odesilatele nemůže být podvržena.
Odkazy
[editovat | editovat zdroj]Poznámky
[editovat | editovat zdroj]- ↑ V MAP fáze 1 se nerozlišují operace pro zprávy z mobilního zařízení (anglicky Mobile Originated) a na mobilní zařízení (anglicky Mobile Terminated) existuje jen obecná operace ForwardSM.
- ↑ Indikace úspěchu v tomto kontextu znamená pouze, že zpráva byla úspěšně doručena do SMS centra, ne že byla úspěšně doručena konečnému příjemci.
- ↑ Přestože MAP (fáze 2 a vyšší) specifikuje samostatnou operaci pro doručování MT zpráv, často se používá operace mo-ForwardSM i pro MT zprávy. V tomto případě se MO a MT zprávy rozlišují pomocí aplikačního kontextu (anglicky Application Context, AC) v dialogové části TCAP. odpovídající aplikační kontexty jsou shortMessageMO-RelayContext a shortMessageMT-RelayContext. Používání stejného kódu operace umožňuje jednoduchou zpětnou kompatibilitu se sítěmi MAP fáze 1, které samostatné operace pro MO a MT SM nemají.
- ↑ SGSN tyto zprávy nepoužívá.
Reference
[editovat | editovat zdroj]V tomto článku byl použit překlad textu z článku Short Message Service technical realisation (GSM) na anglické Wikipedii.
- ↑ 3GPP TS 24.011 V11.0.0 (2012-06); 3rd Generation Partnership Project; Technical Specification Group Core Network and Terminals; Point-to-Point (PP) Short Message Service (SMS) support on mobile radio interface (Release 11). [s.l.]: 3GPP, červen 2012. Dostupné online.
- ↑ a b c d e f g h Mobile Application Part specification, 3GPP TS 29.002. [s.l.]: 3GPP Dostupné online.
- ↑ a b c d SMS Point to Point specification, 3GPP TS 23.040. [s.l.]: 3GPP Dostupné online.
- ↑ Cell Broadcast Service specification 3GPP TS 23.041. [s.l.]: 3GPP Dostupné online.
- ↑ a b Point-to-Point (PP) Short Message Service (SMS) support on mobile radio interface specification,3GPP TS 24.011. [s.l.]: 3GPP Dostupné online.