Informatika | Távközlés » Vladika Zsolt - Short Message Service

Alapadatok

Év, oldalszám:2005, 17 oldal

Nyelv:magyar

Letöltések száma:674

Feltöltve:2006. január 23.

Méret:158 KB

Intézmény:
-

Megjegyzés:

Csatolmány:-

Letöltés PDF-ben:Kérlek jelentkezz be!



Értékelések

Nincs még értékelés. Legyél Te az első!

Tartalmi kivonat

Vladika Zsolt zsvladika@hotmail.com Short Message Service Tartalomjegyzék 1. Az SMS szolgáltatás . 2 1.1 Az SMS küldés . 2 1.2 Az SMS üzenet formátuma. 4 1.21 A 7 bites GSM kódolás. 5 1.22 A PDU formátum. 5 1.3 Az SMS szabványos karakterkészlete . 8 2. A mobiltelefon vezérlése 9 2.1 A GSM modem vezérlése 9 2.2 Az AT parancsok formátuma. 9 2.3 Az SMS AT parancsai . 11 3. Példaprogram (Borland C++) 14 3.1 A program felépítése. 16 4. Irodalomjegyzék 17 1 1. Az SMS szolgáltatás A GSM rendszer egyik igen népszerű szolgáltatása a felhasználók körében az SMS, azaz a rövid szöveges üzenetek küldése a hálózaton. Az ETSI számos szabványt dolgozott ki az SMS küldésére, amely tartalmazza a karakterkészletre, szolgáltatásra, valamint a technikai megvalósításra vonatkozó információkat. A GSM egyéb rövid üzenet küldésére is lehetőséget ad, mint például EMS vagy CBS. Éppen ezért a GSM hálózat magasabb szinteken lévő

protokolljaiban dől el, hogy az adott üzenet milyen típust tartalmaz. 1.1 Az SMS küldés A GSM rendszerben a rövid szöveges üzeneteket az SMSC továbbítja. Ha egy üzenet nem kézbesíthető, akkor az SMSC tárolja egy ideig, majd kézbesíti ha a mobil készülék elérhető, vagy eldobja az üzenetet ha az érvényesség lejártáig nem sikerül kézbesíteni. A kézbesítésről a küldő mobil készülékére igény szerint jelentés küldhető. A rendszerben irány szerint megkülönböztethetünk két fajta SMS üzenetet, a mobil eredetű és mobil célú üzenetet, azaz küldött vagy fogadott SMS-t, amelyek a fejlécükben különböznek. 1.1 ábra SMS küldés Az SMS küldésének folyamata a 4.1 ábrán látható [1] A folyamat során azon MSC, ahol az SMS-t küldő mobil készülék található, egy „Forward SM” üzenettel elküldi az SMS-t a honos hálózat SMSC-jének. Az SMSC ezután megpróbálja az SMS-t továbbítani a címzettnek a 4.2 ábra szerint 2

1.2 ábra Sikeres SMS fogadás A „Forward SM” üzenetben kapott MSISDN száma alapján az SMSC meghatározza a címzett mobiltelefont kiszolgáló HLR címét és megkéri azt egy „Send Routing Info SM” üzenettel, hogy küldje el a címzett készülék IMSI-jét és a címzett készüléket kiszolgáló MSC/VLR MSISDN számát. Miután az SMSC megkapta a kért adatokat, továbbítja a címzettnek az SMS üzenetet. Ha az SMS küldésének időpontjában a címzett készülék pillanatnyilag nem elérhető, akkor az SMS elküldésére az SMSC hibaüzenetet kap a címzettet kiszolgáló MSC-jétől. Ekkor az MSC megkéri a címzett HLR-jét, hogy ha a címzett készülék elérhetővé válik, ezt jelezze a számára. A címzett MSC-je jegyzi, hogy az üzenetet nem sikerül elküldeni, ezért ha a címzett elérhetővé válik, értesíti a HLR-t, aki értesíti az SMSC-t, hogy megpróbálhatja újra az SMS üzenet elküldését a címzett felé. Az SMS sikertelen

elküldését, majd sikeres kézbesítését a 4.3 ábra mutatja [1] Az ábrákon a „TCAP End” üzenettel jelezzük, hogy azokat a MAP tranzakciókat, amelyekhez nem tartozik a MAP protokoll szinten válasz, azokat a TCAP szinten kell lezárni, úgynevezett üres TCAP üzenettel. 3 1.3 ábra Sikertelen majd sikeres SMS fogadás 1.2 Az SMS üzenet formátuma A GSM rendszerben az üzenetek PDU formátumban kerülnek továbbításra a hálózaton, valamint a mobiltelefon is PDU formátumban tárolja el a saját memóriájában, vagy a SIM kártya erre kialakított memóriarészében. [3] Egyes készülékek képesek Text formátummá konvertálni az üzenetet, de ez csak a PDU formátum dekódolását jelenti. A PDU formátumba a szöveges üzenet 7 bites kódolásban kerül továbbításra, amelyet a rendszer az üzenetben 8 bitesre egészít ki. A GSM 7 bites karakter kódolása révén maximálisan 160 karakter hosszú SMS üzenetet továbbíthatunk. A PDU az üzenet részen

kívül további metainformációkat is tartalmaz 4 1.21 A 7 bites GSM kódolás A következőkben egy példa segítségével szemléltetem a 7 bites GSM kódolási eljárást és a 8 bites konverziót. [4] A „message!” üzenet létrehozásakor az 13 fejezetben található karakterkészletnek megfelelően a bináris kód segítségével előállítjuk a 7 bites kódod, majd konvertálásra kerül, a következő byte legkisebb helyiértékű bitjének segítségével. m 109 e 101 s 115 s 115 a 97 g 103 e 101 ! 33 1101101 1101101 11101101 1100101 1100101 11110010 1110011 1110011 01111100 1110011 1110011 00011110 1100001 1100001 00111110 1100111 1100111 10010111 1100101 1100101 01000011 0100001 0100001 ED F2 7C 1E 3E 97 43 1.22 A PDU formátum A PDU egy olyan bájtsorozat, ami az üzenettel kapcsolatos minden információt tartalmaz. A PDU eltér az elküldött, illetve bejövő üzenetek esetén [6] Az üzenet szövege hexadecimális oktetekből épül

fel, valamint tartalmazza az üzenettel kapcsolatos valamennyi információt decimális vagy hexadecimális oktetekben.[8] A PDU formátum specifikációit az ETSI GSM 03.40 és GSM 0338-as szabvány tartalmazza. 5 Beérkező üzenet (SMS-DELIVER): 07916303898800F0040B916303214365F70000993092516195AA08EDF27C1E3E9743 Oktet(ek) Leírás Length of SMSC information SMSC Type of Address Service Center Number First octet of SMS-DELIVER Address Length Type of Address Sender number TP-PID: Protocol Identifier TP-DCS: Data Coding Scheme TP-SCTS: Time Stamp TP-UDL: User Data Length TP-UD: User Data 07 91 63 03 89 88 00 F0 04 0B 91 63 03 21 43 65 F7 00 00 99 30 92 51 61 95 AA 08 ED F2 7C 1E 3E 97 43 Küldendő üzenet (SMS-SUBMIT): 0011000B916303214365F70000AA08EDF27C1E3E9743 Oktet(ek) Leírás SMSC information First octet of SMS-SUBMIT TP-Message reference Address Length Type of Address Target number TP-PID: Protocol Identifier TP-DCS: Data Coding Scheme TP-Validity Period TP-UDL:

User Data Length TP-UD: User Data 00 11 00 0B 91 63 03 21 43 65 F7 00 00 AA 08 ED F2 7C 1E 3E 97 43 - SMSC information: Az üzenet központra vonatkozó információk hossza oktetekben. - SMSC Type of Address: A telefonszám típusát jelöli. 91h – nemzetközi formátum 81h – ismeretlen formátum 6 - First octet of SMS-DELIVER: Bit no. Name 7 TP-RP 6 TPUDHI 5 TP-SRI 4 X 3 X 2 TPMMS 1 TPMTI 0 TPMTI • TP-RP (Reply Path): válasz útvonal létezik. • TP-UDHI (User Data Header Indication): értéke 1, ha a User Data fejléccel kezdődik. • TP-SRI (Status Report Indication): értéke 1, ha jelentést kell küldeni ME-nek az üzenet megérkezéséről az SMSC-nek. • TP-MMS (More Message to Send): értéke 0, ha van további üzenet. • TP-MTI (Message Type Indicator): értéke 01 SMS-DELIVER esetén. - First octet of SMS-SUBMIT: Bit no. Name 7 TP-RP 6 TPUDHI 5 TPSRR 4 TPVPF 3 TPVPF 2 TPMMS 1 TPMTI 0 TPMTI • TP-RP (Reply Path): válasz

útvonal létezik. • TP-UDHI (User Data Header Indication): értéke 1, ha a User Data fejléccel kezdődik. • TP-SRR (Status Report Requested): értéke 1, ha jelentést vár ME az üzenet kézbesítéséről. • TP-VPF (Validity Period Format): Az SMS-SUBMIT PDU TP-VP mezőjének formátumát jelöli. • TP-MMS (More Message to Send): értéke 0, ha van további üzenet. • TP-MTI (Message Type Indicator): értéke 01, SMS-SUBMIT esetén. - TP-Message reference: Üzenet azonosító, értéke 00 ha a telefon állítja be az értéket. - Address Length: A küldő vagy fogadó telefonszámának hosszúsága. 7 - Target or Sender and Service number: A telefonszámok kódolása decimális, a számjegyek számonként fel vannak cserélve. Ha a szám utolsó oktetje páratlan, akkor az utolsó oktetet „F” értékkel egészítik ki. 36 30 12 34 56 7 W 63 03 21 43 65 F7 - TP-PID (Protocol Identifier): Az SMS feletti protokoll azonosítója, általánosan 00. -

TP-DCS (Data Coding Scheme): A User Data kódolását jelzi, a 7 bites kódolást 00 érték jelenti. - TP-SCTS (Time Stamp): Az üzenet érvényességi ideje BCD kódolásban, az utolsó byte a GMT-től való eltérés. A számjegyek byte-onként felcseréve helyezkednek el 99 30 92 51 61 95 W 99/03/29 15:16:59 - TP-Validity Period: Az üzenet érvényességi ideje, az SMS-SUBMIT első oktetjében beállított formátum alapján. Megadása nem kötelező - TP-UDL (User Data Length): A User Data hossza, TP-DCS-től függően. - TP-UD (User Data): A kódolt üzenet szövege. 1.3 Az SMS szabványos karakterkészlete 0 0 0 0 @ 0 0 0 0 0 £ 0 0 0 1 1 $ 0 0 1 0 2 0 0 1 1 3 è 0 1 0 0 4 é 0 1 0 1 5 ù 0 1 1 0 6 ì 0 1 1 1 7 ò 1 0 0 0 8 Ç 1 0 0 1 9 LF 1 0 1 0 10 Ø 1 0 1 1 11 ø 1 1 0 0 12 CR 1 1 0 1 13 Å 1 1 1 0 14 å 1 1 1 1 15 Forrás: ETSI GSM 03.38 v700 0 0 1 1 ∆ Φ Γ Λ Ω Π Ψ Σ Θ Ξ 1) Æ æ ß É 8 0 1 0 2 SP ! " # ¤ % & ( ) * + , . / 0 1 1 3 0 1 2 3 4

5 6 7 8 9 : ; < = > ? 1 0 0 4 ¡ A B C D E F G H I J K L M N O 1 0 1 5 P Q R S T U V W X Y Z Ä Ö Ñ Ü § 1 1 0 6 ¿ a b c d e f g h i j k l m n o 1 1 1 7 p q r s t u v w x y z ä ö ñ ü à 2. A mobiltelefon vezérlése 2.1 A GSM modem vezérlése Egy külön egységként működő, vagy egy mobiltelefonba épített GSM modemet az AT parancsok segítségével vezérelhetünk. A modem általános architektúráját a 51 ábra szemlélteti. A modem fő része a TE (Terminal Equipment) ami a parancsokat küldi, ez általában a számítógép, a TA (Terminal Adaptor) a parancsfeldolgozó, ezen keresztül történik a kommunikáció, valamint a ME (Mobile Equipment), vagyis a GSM mobiltelefon amely a kapcsolatot tartja hálózattal. A modem fizikai megvalósításában a TA a mobiltelefon része. GSM hálózat Hálózati üzenetek responses TE ME status TA AT commands ME ME control Felhasználó & Alkalmazás 2.1 ábra: A modem architektúrája 2.2 Az AT

parancsok formátuma Az AT parancsok lehetőséget adnak a modem vezérlésére és paramétereinek beállítására, az utasításkészletet a modemgyártók számára szabvány írja le. A parancsokat a kommunikációs porton keresztül adjuk ki a modemnek, a sikeres vagy sikertelen végrehajtásról információt kapunk vissza a modemtől. [7] 9 Egy AT parancs alakja: (ETSI GSM 07.07) Egy AT parancsnak van előtagja, amely maga az „AT” parancs, a parancssor közepén helyezkedik el a tényleges utasítás, záró része az „enter” (ASCII CR). Az AT parancsoknál megkülönböztetünk kis és nagybetűket. A parancsok lezárása <CR> (enter), vagy CTRL-Z billentyűvel történik. Egy AT előtag után több AT utasítást is állhat, a betűparancsokat követheti szám vagy betűparaméter. A modemtől kapott válaszok a következők lehetnek: - OK : a parancs végrehajtása sikerült - ERROR : sikertelen végrehajtás - +CME ERROR: <err> : a végrehajtás

az ME hibájából sikertelen - A kért információk megjelenítése - Sikeres végrehajtás egyéb információja A válasz általános alakja: (ETSI GSM 07.07) 10 2.3 Az SMS AT parancsai Az AT parancsok segítségével az SMS-el kapcsolatos beállításokat, valamint az SMS küldést, illetve fogadást is vezérelhetjük. A SMS üzenetek AT parancsait a 51 táblázat foglalja össze. [9] Formátum kiválasztása: AT+CMGF A paranccsal beállíthatjuk, hogy a PA milyen formátumot használjon az üzenet továbbítására TE felé. A lehetséges formátum lehet PDU, vagy Text típusú Szintaxis: AT+CMGF=<mode> 0 : PDU 1 : Text SMS küldése: AT+CMGS Szintaxis (PDU mód): AT+CMGS=<lenght><CR><PDU><CTRL-Z> Szintaxis (Text mód): AT+CMGS=<da>,<toda><CR><üzenet><CTRL-Z> <lenght>: a PDU hossza oktetekben <da>: cél telefonszám <toda>: a cél telefonszám típusa 129 : Nemzeti vagy ismeretlen formátum

(national) 145 : Nemzetközi formátum (international) Üzenet írása a memóriába: AT+CMGW Szintaxis (PDU mód): AT+CMGW= <length>,<stat>,<CR> Szintaxis (Text mód): AT+CMGW= <da>,<toda>,<stat>,<CR> Válasz: +CMGW=<index> <index> memóriahely száma <lenght>: a PDU hossza oktetekben <da>: cél telefonszám 11 <toda>: a cél telefonszám típusa (129,145) <stat>: az üzenet státusza Text mód: "REC UNREAD": fogadott és olvasatlan üzenet "REC READ": fogadott és olvasott üzenet "STO UNSENT": küldendő üzenet "STO SENT": elküldött üzenet Pdu mód: 0: fogadott és olvasatlan üzenet 1: fogadott és olvasott üzenet 2: küldendő üzenet 3: elküldött üzenet Üzenetek listázása: AT+CMGL Szintaxis: AT+CMGL=<stat> <stat>: az üzenet státusza Text mód: "REC UNREAD": fogadott és olvasatlan üzenetek listája "REC READ":

fogadott és olvasott üzenetek listája "STO UNSENT": küldendő üzenetek listája "STO SENT": elküldött üzenetek listája "ALL": összes üzenet kilistázása PDU mód: 0: fogadott és olvasatlan üzenetek listája 1: fogadott és olvasott üzenetek listája 2: küldendő üzenetek listája 3: elküldött üzenetek listája 4: összes üzenet listázása 16: sablon üzenetek listája 12 Üzenet törlése: AT+CMGD Szintaxis: AT+CMGD=<memory index> <delflag> <memory index>: memóriahely száma <delflag>: 0: üzenet törlése az index szerint 1: összes olvasott üzenet törlése 2: olvasott és elküldött üzenetek törlése 3: olvasott és küldendő üzenet törlése 4: összes üzenet törlése AT+CSMS AT+CPMS AT+CMGF AT+CSCA AT+CSMP AT+CSDH AT+CSCB AT+CSAS AT+CRES AT+CNMI AT+CMGL AT+CMGR AT+CMGS AT+CMSS AT+CMGW AT+CMGD AT+CMGL AT+CMGR AT+CMGS AT+CMGW SMS Text Mode Select Message Service Preferred Message Storage

Message Format Service Centre Address Set Text Mode Parameters Show Text Mode Parameters Select Cell Broadcast Message Types Save Settings Restore Settings New Message Indications to TE List Messages Read Message Send Message Send Message from Storage Write Message to Memory Delete Message SMS PDU Mode List Messages Read Message Send Message Write Message to Memory 2.1 táblázat: SMS-el kapcsolatos AT parancsok 13 3. Példaprogram (Borland C++) #include<stdio.h> #include<conio.h> #include<string.h> #include<dos.h> //SMS Sender készítette: Vladika Zsolt baud(); int comp=0x2e8; //kommunikációs port (COM4) char atparancs[22]={"AT+CMGS=""}; char telefonszam[14]; char uzenet[160]; char textparancs[10]={"AT+CMGF=1 "}; //Text formátum beállítása int d[200],k=0; main() { int i; clrscr(); baud(); printf(" Telefonszám:");gets(telefonszam); printf(" Üzenet:");gets(uzenet); strcat(atparancs,telefonszam);

strcat(atparancs,"""); strcat(atparancs," "); //enter strcat(uzenet,"x1a"); //ctr+z // // // Text formátum beállítás küldése soros portra for(i=0;i<10;i++) { outportb(comp,textparancs[i]); while((inportb(comp+5)&0x01)==1) { d[k++]=(inportb(comp)); } }//CMGF // at parancs küldése a soros portra 14 //beérkezö karakter a modemtöl k=0;sleep(2); int athosz; athosz=strlen(atparancs); // for(i=0;i<athosz;i++)// at { outportb(comp,atparancs[i]); while((inportb(comp+5)&0x01)==1) { d[k++]=(inportb(comp)); } }//atparancs // uzenet küldése a soros portra k=0;sleep(2); int uzhosz; uzhosz=strlen(uzenet); // for(i=0;i<uzhosz;i++) { outportb(comp,uzenet[i]); while((inportb(comp+5)&0x01)==1) { d[k++]=(inportb(comp)); } }//uzenet printf(" Az üzenet elküldve!"); getch(); }//main baud() { outportb(comp+3,0x83); outportb(comp+1,0x00); outportb(comp,0x01); outportb(comp+3,0x03); }//baud 15 3.1 A program

felépítése A program első lépésben beállítja a soros kommunikációhoz szükséges portbeállításokat, amelyeket a baud() függvény tartalmaz. A program alapértelmezés szerint a COM4-es soros porton kapcsolódik a GSM modemhez (2E8), de beállíthatjuk bármely soros portra (ez elég fapados megoldás, de példaként megteszi). A soros port beállításához a forráskód comp integer változóját kell módosítani, a 3.1 táblázat szerint. Port Báziscím COM1 0x3f8 (3F8) COM2 0x2f8 (2F8) COM3 0x3e8 (3E8) COM4 0x2e8 (2E8) 3.1 táblázat: Soros portok báziscímei A címzett telefonszám és az elküldendő üzenet bekérése után a következő lépésben a program egy AT parancs segítségével beállítja a Text formátumú üzenetküldést, oly módon, hogy kiküldi a soros portra az AT+CMGF=1 parancsot az outportb függvény segítségével, amelyet a dos.h header file tartalmaz A szükséges AT utasítással egybefűzzük a címzett

telefonszámát, majd szintén kiküldjük a soros portra. Végül az üzenet szövegét is továbbítjuk a soros port felé, a lezárás ctrl+z vel, azaz a „x1a” stringel történik. A programot DOS környezetben futtathatjuk, viszont ha Bluetooth vagy infravörös kapcsolattal hozzuk létre az összeköttetést, akkor szükségünk van a Windows operációs rendszer támogatására, vagy az eszköz DOS-os illesztőprogramjára a soros port használatához. 16 4. Irodalomjegyzék [1] Média Oktató és Kutató Központ: A GSM hálózati architektúra. http://mok.hu/mediatervezo/letoltes/infokomm/gsmpdf [2] Dr. Dárdai Árpád: Mobil Távközlés, Mobil Internet Budapest, Mobil Ismeret, 2002. [3] Tar Ferenc, Szabó Ádám: Szerver felügyelet mobiltelefon segítségével. 2004 http://mobil.nikbmfhu/projektek/2004/felugyeletpdf [4] Vladika Zsolt: Bináris adatátvitel GSM hálózaton. PTE-PMMK Szakdolgozat [5] Dr. Pap László, Dr Imre Sándor: A mobil hírközlés alapjai BME

jegyzet, 1998 [6] SMS and the PDU format. wwwdreamfabriccom/sms [7] AT Command Set for Nokia GSM Products. http://gsmnetua/atnokiapdf [8] GSM 03.40 v600 Technical realization of SMS 1998 wwwetsiorg [9] AT+C command set of GSM devices. http://gatlingikksztakihu/~kissg/gsm [10] dr. Imre Sándor: Mobil infokommunikáció BME jegyzet, 2003 http://www.hitbmehu/mcl/hu/oktatashtml Vladika Zsolt, 2005 zsvladika@hotmail.com 17