Inviare SMS dal Computer
In generale, ci sono due modi per spedire SMS dal vostro PC verso un dispositivo mobile:
In generale, ci sono due modi per spedire SMS dal vostro PC verso un dispositivo mobile:- Il primo consiste nel connettere il vostro dispositivo mobile o un modem GSM/SPRS ad un computer. In seguito si userà il PC e i comandi AT per istruire il dispositivo mobile o il model GSM/GPRS per spedire gli SMS;
- Il secondo consiste nel connettere il computer ad un SMS center (SMSC) o un gateway SMS di una portante wireless o di un SMS Service Provider. A questo punto si spediranno i messaggi attraverso il protocollo o l'interfaccia supportata dall'SMSC o dal gateway SMS.
In quest'articolo ci concentreremo sulla primamodalità.
Spedire SMS da un computer usando il cellulare/PDA o unmodem GSM GPRS
Le specifiche SMS hanno definito una modalità diinoltro dei messaggi per i computer attraverso l'uso didispositivi mobili o di modem GSM/GPRS. Un modem GSM/GPRSè un modem wireless in grado di operare in retiwireless GSM/GPRS. Un modem wireless è simile ad unmodem dial-up: la differenza principale consiste nel fattoche il primo trasmette i dati attraverso una rete wirelessmentre il secondo attraverso la rete telefonica. La maggiorparte dei telefonini può essere usata come un modemwireless. Ad ogni modo, alcuni cellulari hanno dellelimitazioni rispetto ai modem GSM/GPRS.
Per spedire SMS, prima di tutto inserire una scheda SIMvalida nel proprio dispositivo mobile, connesso poi al PC. Cisono svariati modi per collegare il dispositivo mobile o ilmodem GSM/GPRS al computer: per esempio si possono collegareattraverso un cavo seriale, un cavo USB, un collegamentoBluetooth o infrarossi. Ciò dipende molto dallecapacità del dispositivo o del modem.
dopo aver connesso il dispositivo mobile o il modem alcomputer, è possibile controllarli spedendogli delleistruzioni. Le istruzioni usate per controllare ildispositivo mobile o il modem vengono definite comandi AT(tali comandi vengono anche usati per controllare i modemdial-up). I modem dial-up, GSM/GPRS e i dispositivi mobilisupportano un set esteso di comandi AT. Uno degli usi diquesti comandi riguarda il controllo della spedizione ericezioni di messaggi SMS.
La seguente tabella fornisce una lista dei comandi ATcorrelati all'inoltro e alla ricezione di SMS:
comando AT | Significato |
---|---|
+CMGS | Spedisce il messaggio |
+CMSS | Spedisce il messaggio dalla memoria |
+CMGW | Salva il messaggio in memoria |
+CMGD | Cancella il messaggio |
+CMGC | Inoltra il comando |
+CMMS | Altri messaggi da spedire |
Un modo per inoltrare comandi AT ad un dispositivo mobile oun modem GSM/GPRS è usare un terminale. Tale programmaspedisce i caratteri che vengono digitati al cellulare o almodem. Questo poi mostra sullo schermo la risposta che ricevedal cellulare o dal modem. Tale programma in Windows sichiama HyperTerminal.
Qui sotto mostriamo un semplice esempio che dimostra comeusare i comandi AT e HyperTerminal per spedire SMS. Le lineein grassetto sono i comandi che voi dovete digitare inHyperTerminal, mentre le altre linee rappresentano lerisposte restituite dal telefonino o dal modem GSM/GPRS:
1: AT
2: OK
3: AT+CMGF=1
4: OK
5: AT+CMGW=" +85291234567"
6: > Un semplice messaggio :-)
7: +CMGW: 1
8:
9: OK
10: AT+CMSS=1
11: +CMSS: 20
12:
13: OK
Segue una descrizione di ciò che si è fatto nelcodice soprastante:
- Linea 1: "AT" viene spedito al modem GSM/GPRS per testare la connessione. Il modem risponde con un codice di risposta (
OK
alla linea 2), stando a significare che la connessione fra HyperTerminal e il modem è attiva; - Linea 3: Il comando
AT+CMGF
viene usato per istruire il modem ad operare in modalità testuale per gli SMS. Il codice di rispostaOK
alla linea seguente indica che linea di comandoAT+CMGF=1
è stata eseguita con successo. Se il codice di risposta èERROR
, probabilmente il modem GSM/GPRS non supporta la modalità testuale per gli SMS. Per averne conferma, digitateAT+CMGF=?
in the HyperTerminal: se la risposta è+CMGF: (0,1)
allora la modalità testuale per gli SMS è supportata, se invece ricevete+CMGF: (0)
, allora tale modalità non è supportata; - Linee 5-6: Il comando
AT+CMGW
viene usato per memorizzare nel modem il messaggio, mentre+85291234567
è il numero telefonico del destinatario. Dopo aver digitato tale numero, premete il tasto Enter. Il modem a questo punto dovrebbe ritornare il prompt ">" e a questo punto potete incominciare a scrivere il vostro SMS (in questo caso "Un semplice messaggio"). Quando avete finito, premeteCtrl+Z
; - Linea 7:
+CMGW: 1
ci dice che l'indice assegnato al messaggio è 1. Questo indica la locazione dell'SMS nella memoria del modem; - Linea 9: Il risultato
OK
indica che l'esecuzione del comando+CMGW
ha avuto successo; - Linea 10: il comando
+CMSS
viene usato per spedire i messaggi dalla memoria del modem. 1 indica l'indice dell'SMS ottenuto alla linea 7; - Linea 11:
+CMSS: 20
ci dice che il numero di riferimento assegnato all'SMS è 20; - Linea 13: Il risultato OK indica che l'esecuzione del comando
+CMSS
ha avuto successo.
Per spedire messaggi da un'applicazione, dovete scriveredel codice in grado di connettersi al modem e di inoltrare ericevere comandi AT. Tale codice può essere scritto inC, C++, Java, Visual Basic, Delphi o in .NET (comepreferite). Ad ogni modo, scrivere da zero il vostro codicecomporta alcuni svantaggi:
- dovete imparare ad usare i comandi AT;
- dovete imparare a comporre i bytes di un SMS. Per esempio, per specificare la codifca dei caratteri di un SMS. avete bisogno di conoscere quali bit nell'header del messaggio devono essere modificati e quale valore assegnargli;
- spedire SMS con un modem ha uno svantaggio principale: la velocità di trasmissione è lenta. Con l'affermarsi della vostra ipotetica applicazione per l'invio di SMS con un dispositivo mobile dotato di modem GSM/GPRS, questa dovrà gestire una quantità di traffico maggiore in termini di traffico SMS e alla fine il modem non sarà più in grado di sostenere il carico. Per ottenere una velocità maggiore di trasmissione, bisogna instaurare un connessione diretta verso un centro SMSC o un gateway SMS di un SMS service provider. Ad ogni modo i comandi AT non vengono usati per comunicare con un centro SMS o un gateway SMS: questo comporterà notevoli cambiamenti alla vostra applicazione per spostarsi da una soluzione basata su un modem wireless ad una basata su un SMSC.
Nella maggior parte dei casi, invece di scrivere il vostrocodice per interagire con il modem GSM/GPRS attraverso icomandi AT, una soluzione migliore consiste nell'usareAPI o
Alcune librerie open source per la messaggistica SMS possono essere trovate in quest'articolo.
Un altro modo per nascondere i dettagli di basso livelloconsosite nel sistemare un gateway SMS fra la vostraapplicazione e il modem GSM(GPRS. Semplici protocolli qualiHTTP / HTTPS possono esser poi usati per spedire i messaggidall'applicazione. Se un protocollo SMSC (come SMPP,CIMD, ecc) viene usato per comunicare con il gateway SMSinvece di HTTP/HTTPS, una libreria o un SDK possono esseremolto utili per includere i dettagli del protocollo SMSC.
Conclusioni
In conclusione abbiamo visto che lo svantaggio principale diquesta tecnica è la scarsa velocità ditrasmissione. Possono essere spediti soltanto da 6 a 10messaggi al minuto (quando si usa la modalità SMS overGSM). La performance non è abbassata dalla tipologiadi connessione fra il computer e il modem GSM/GPRS (USB,seriale, ecc) né dipende dal modem stesso: il fattoredeterminante è la rete wireless.
- Articolo precedente Tre regole per lavorare da casa senza andare in ufficio. Da seguire assolutamente!
- Articolo successivo Introduzione al linguaggio di programmazione Python: cosa è? le caratteristiche? le funzioni?
Ti potrebbe interessare anche
commenta la notizia



Ammetto che se avessi trovato questa guida prima non me ne sarei svenato per cercare i comandi AT! :P
Per i posteri, potete utilizzare il software Putty. Putty è gratuito, per utilizzarlo dovete trovare la porta COM a cui è collegato il vostro modem (il cellulare con il bluetooth). Per farlo basta andare tasto dx su Risorse del computer, gestione dei dispositivi, trovate tra i vostri modem il vostro Cellulare, doppio click vi dice anche la porta COM (es. COM9)
Quindi, andate su Putty, scegliete (nel primo riquadro) l'opzione Serial. Quindi, dopra, in Serial line inserite la porta com dove è il cellulare. Speed 9600, accettabile per tutti i cellulari, anche obsoleti. Schiacciate Open. Quindi procedete con il reset, digitando ATZ. E da ora in poi tutto vostro! :D
Oppure, se non vi và, potete scaricare l'applicazione GRATUITA microsoft "SMS Sender", che farà tutto il lavoro sporco per voi.
In alternativa, ho riadattato le librerie gratuite SMSLib su C# ed ho creato una semplice applicazione in PHP che invia SMS con il cellulare. Ne approfitto per linkare il mio sito, sono all'inizio ed ho bisogno di un po' di sponsor :D Spero sia stata utile il commento, tale da guadagnarmi il link. un giorno di questi disquiserò anche io su AT commands e dintorni
http://antonio20k1.org/wp/2011/03/30/invio-di-sms-da-php/