Pošiljanje sporočila SMS iz jedrnega omrežja mobilnega operaterja (natančneje, naprave, imenovane SMSC) v mobilni telefon poteka prek protokola MAP (Mobile Application Part) SS7, ki omejuje količino prenesenih podatkov na 140 zlogov (bajtov) oziroma 1120 bitov. Sporočilo SMS, kakorkoli že obrnete, ne more biti daljše od omenjene dolžine. Ti biti povedo, katere znake oziroma črke sporočilo vsebuje, prek tako imenovane kodne tabele. Gre za tabelo, kjer je številkam od 1 do n, pri čemer je n odvisen od števila bitov, ki opisuje en znak (o tem več malce pozneje), dodeljen znak. Ko SMS »prispe« v mobilni telefon, ta pogleda v svojo kodno tabelo, ki je del operacijskega sistema in je zapisana na njegovem pomnilniku, in na zaslonu namesto bitov prikaže znake. Ko sporočilo pošiljamo, steče proces v obratni smeti. Mi pišemo znake, črke, te pa telefon pretvori v številke.
MANJ ZNAKOV V TABELI, DALJŠE SPOROČILO
Pri oblikovanju prvega standarda sporočil SMS so hoteli iz omejene dolžine iztisniti čim več. Zato so namesto 8-bitne kodne tabele, ki je bila običajna v prvih računalnikih, uporabili 7-bitno. Ta opiše manj znakov, vendar je lahko zato sporočilo daljše. Razumljivo je tudi, da so hoteli narediti 7-kodno tabelo čim bolj univerzalno, zato so vanjo vključeni le tisti znaki, ki jih pozna večino potencialnih uporabnikov (glej sliko). Osnova je angleška abeceda z nekaj dodatki. Če znak opišemo s 7 biti, je v tabeli 27 oziroma 128 znakov. Če dodamo le en bit, se količina opisanih znakov podvoji na 28 oziroma 256 znakov, vendar 8-bitna kodna tabela ni v uporabi v mobilnih telefonih. Načeloma bi lahko vsak narod oziroma vsak operater mobilne telefonije uporabljal svojo kodno tabelo, saj to lahko brez večjih težav spreminjamo. A težava je v tem, da bi v tem primeru sistem kratkih sporočil deloval le, če bi si ta sporočila med seboj pošiljali uporabniki, ki bi uporabljali isto (spremenjeno) kodno tabelo. Če bi tako sporočilo poslali komu, ki te nima, bi se na njegovem telefonu na mestu, kjer ste vpisali na primer šumnike, prikazali čudni znaki. Nič neobičajnega v svetu osebnih računalnikov, saj lahko še danes občasno prejmete e-pošto, kjer je to vidno. Da bi zadostili potrebam uporabnikov specifičnih črk abecede in tistih z drugačno pisavo (cirilica, kitajščina, arabščina), je bila oblikovana kodna tabela Unicode (UCS2). Ta vsak znak opiše s 16 biti, vsebuje pa 216 oziroma 65.536 znakov. Nekateri, predvsem novejši mobilni telefoni znajo uporabljati obe tabeli, bodisi tako, da to določi uporabnik sam, ali pa telefon samodejno pretvori med tabelam, če v sporočilu opišemo znak, ki ni del osnovne 7 bitne tabele.
160 NI VEDNO 160
Koliko znakov, pri čemer se štejejo tudi presledki, je v sporočilu SMS, je odvisno od kodne tabele. To je zdaj že jasno. Če je kodna tabela 7-bitna, vsak znak opisuje 7 bitov in število znakov je 1120/7 oziroma 160. Če je tabela 8-bitna, število znakov pade na 140, pri 16-bitni pa le še na 70 znakov. Izjeme pri 7-bitni kodni tabeli so {}[]~|\ in €, ki se štejejo kot dva znaka. Vse to večine uporabnikov ne omejuje, saj le redki pri pisanju sporočil uporabljajo znake slovenske abecede. V tem je tudi razlog, da operaterji problema ne obešajo na veliki zvon, čeprav ga poznajo in imajo zadevo opisano nekje na svojih spletnih straneh.
Pri prvih mobilnih telefonih je bilo tako, da več kot 160 znakov v nobenem primeru niste mogli napisati, saj vam telefon tega fizično ni dopuščal. Današnji telefoni pa podpirajo tako imenovana dolga sporočila SMS. V praksi to pomeni, da sporočilo pišete in pišete, nekateri telefoni vas obvestijo, ko presežete določeno mejo, drugi spet ne. Ko pritisnete gumb za pošiljanje, telefon sam sporočilo razreže na več sporočil »dopustne dolžine« in jih pošlje enega za drugim. V telefonu prejemnika pa se ta spet združijo v enovito daljše sporočilo. Ta tehnologija zahteva, da je vsak tak SMS, ki je del daljšega sporočila, opremljen z znaki UDH. To pa spet zmanjša število znakov, ki so vam na voljo. Pri 7-bitnem opisu na 157 znakov, pri 8-bitnem na 134 in pri 16-bitnem na 67.
Kaj se je torej lahko zgodi? Uporabnik napiše sporočilo SMS, dolgo 225 znakov, med katerimi uporabi tudi šumnike. Ker ve, da je omejitev 160 znakov, misli, da je poslal dve sporočili (in to pričakuje, da bo plačal), a ker je uporabil 16-bitno kodiranje znakov, je njegov telefon dejansko poslal štiri sporočila. Predstavljajte si, da tako sporočilo pošljete vsem stikom, ki jih imate v imeniku. Tako dejanje je lahko zelo drago!
Telekomunikacije, Julij-Avgust 2009 | Jan Kosmač