SMS od podszewki

Liczba telefonów GSM w Polsce rośnie i niedługo może przekroczyć 10 milionów. Jednak ich podstawowa funkcja – przekaz głosu – to jedynie część ich możliwości. Drugą pod względem popularności usługą GSM stanowią wiadomości tekstowe. Wysyłane są one nie tylko pomiędzy poszczególnymi użytkownikami sieci GSM, ale stały się również źródłem informacji i różnego rodzaju powiadomień czy potwierdzeń (także wysyłanych przez automaty). Nie sposób nie wspomnieć też o konkursach lub grach wymagających wysyłania SMS-ów na czterocyfrowe numery Premium Rate o podwyższonej taryfie (od 1 do 9 zł netto). Wiele osób przestało nawet wysyłać życzenia świąteczne na kartkach pocztowych, zastępując je SMS-ami. Czyżby znak czasów?

Na pierwszy rzut oka może tego nie widać, ale mechanizm, pozwalający wysłać 160 znaków, jest całkiem skomplikowany. Prawie każdy z nas wie, jak wysłać i odebrać SMS, przesłać wiadomość graficzną czy logo, które sprawi, że nasz telefon będzie się wyróżniał. Nie każdy się jednak zastanawiał, jak to się dzieje.

W głąb wiadomości

Źródłem specyfikacji technicznej dla różnych standardów telekomunikacyjnych – w tym dotyczących telefonii GSM – są dokumenty publikowane przez ETSI (European Telecommunications Standards Institute). Normy GSM 03.38 oraz 03.40 opisują takie zagadnienia, jak:

– pola nagłówka wiadomości SMS determinujące czas jej doręczenia, czas ważności, priorytet, stempel czasowy sieci GSM, znacznik protokołu wysyłki (parametry ważne z punktu widzenia operatora sieci),

– zestaw znaków, rodzaj SMS-a, sposób jego przechowywania w telefonie, rodzaj wiadomości (informacje istotne dla telefonu odbiorcy).

Początkowo w telefonach GSM obowiązywał siedmiobitowy system kodowania znaków zdefiniowany w normie GSM 03.38 i prawie w całości pokrywający się z alfabetem ASCII. Wszyscy wiemy, że jeden SMS może zawierać maksymalnie 160 znaków. Liczba ta wynika z tego, że pole danych w ramce SMS-a ma wielkość 140 bajtów, czyli 140*8=1120 bitów. Po zakodowaniu jednego znaku za pomocą 7 bitów otrzymujemy właśnie liczbę 160 (1120/7).

Siedmiobitowy alfabet GSM nie pozwalał jednak na przesyłanie znaków diakrytycznych, co stanowiło problem w krajach, gdzie nie obowiązywał zapis oparty na alfabecie łacińskim (np. cyrylica) lub których alfabety zawierały znaki spoza podstawowego zestawu ASCII (Polska, Niemcy etc.). Rozwiązanie tego problemu uzyskano przez wprowadzenie alfabetu Unicode UCS-2, w którym każdy znak kodowany jest za pomocą 16 bitów. Oczywiście zastosowanie znaków kodowanych na większej liczbie bitów powoduje, że w wiadomości “zmieści się” mniej znaków. Możliwość ich prezentacji w przypadku egzotycznych języków uzależniona jest tylko od parametrów wyświetlacza telefonu. Ciekawostką jest to, że właśnie zastosowanie Unicode pozwala wysyłać “mrugające” SMS-ów (efekt widoczny w niektórych modelach telefonów Nokia).

Wcześniej pojawił się inny problem. Wraz z koniecznością przesyłania via SMS informacji innych niż tekst (logo, dzwonki itp.) do standardu GSM wszedł typowy ośmiobitowy alfabet znaków. Jednak i tu napotkano kłopoty związane z ograniczeniem wielkości pola danych do 140 bajtów. Obrazek czy muzyczka zajmują przeważnie więcej miejsca, jak więc przesłać na przykład wiadomość graficzną czy dzwonek? Nokia, która była prekursorem w dziedzinie Smart Messaging, zastosowała protokół NBS (Narrow Band Sockets) umożliwiający przesyłanie więcej informacji za pomocą kilku kolejnych SMS-ów. Prekursorem NBS-a był znany z technologii WAP protokół WDP. Idea polega na tym, że z pola danych o rozmiarze 140 bajtów pierwszych 7 bajtów rezerwowanych jest na informacje o łącznej liczbie SMS-ów, numerze bieżącego SMS-a, identyfikatorze wiadomości oraz numerze usługi, na podstawie którego telefon rozpoznaje, z jakim typem danych ma do czynienia. Inni producenci telefonów, np. Siemens, stosują do przesyłania danych binarnych podobny protokół.

Więcej:bezcatnews