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 prima modalità.
Spedire SMS da un computer usando il cellulare/PDA o un
modem GSM GPRS
Le specifiche SMS hanno definito una modalità di inoltro dei messaggi per i computer attraverso l'uso di dispositivi mobili o di modem GSM/GPRS. Un modem GSM/GPRS è un modem wireless in grado di operare in reti wireless GSM/GPRS. Un modem wireless è simile ad un modem dial-up: la differenza principale consiste nel fatto che il primo trasmette i dati attraverso una rete wireless mentre il secondo attraverso la rete telefonica. La maggior parte dei telefonini può essere usata come un modem wireless. Ad ogni modo, alcuni cellulari hanno delle limitazioni rispetto ai modem GSM/GPRS.
Per spedire SMS, prima di tutto inserire una scheda SIM valida nel proprio dispositivo mobile, connesso poi al PC. Ci sono svariati modi per collegare il dispositivo mobile o il modem GSM/GPRS al computer: per esempio si possono collegare attraverso un cavo seriale, un cavo USB, un collegamento Bluetooth o infrarossi. Ciò dipende molto dalle capacità del dispositivo o del modem.
dopo aver connesso il dispositivo mobile o il modem al
computer, è possibile controllarli spedendogli delle
istruzioni. Le istruzioni usate per controllare il
dispositivo mobile o il modem vengono definite comandi AT
(tali comandi vengono anche usati per controllare i modem
dial-up). I modem dial-up, GSM/GPRS e i dispositivi mobili
supportano un set esteso di comandi AT. Uno degli usi di
questi comandi riguarda il controllo della spedizione e
ricezioni di messaggi SMS.
La seguente tabella fornisce una lista dei comandi AT
correlati 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 o un modem GSM/GPRS è usare un terminale. Tale programma spedisce i caratteri che vengono digitati al cellulare o al modem. Questo poi mostra sullo schermo la risposta che riceve dal cellulare o dal modem. Tale programma in Windows si chiama HyperTerminal.
Qui sotto mostriamo un semplice esempio che dimostra come usare i comandi AT e HyperTerminal per spedire SMS. Le linee in grassetto sono i comandi che voi dovete digitare in HyperTerminal, mentre le altre linee rappresentano le risposte 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 nel codice soprastante:
-
Linea 1: "AT" viene spedito al
modem GSM/GPRS per testare la connessione. Il modem
risponde con un codice di risposta (
OKalla linea 2), stando a significare che la connessione fra HyperTerminal e il modem è attiva; -
Linea 3: Il comando
AT+CMGFviene usato per istruire il modem ad operare in modalità testuale per gli SMS. Il codice di rispostaOKalla 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+CMGWviene 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: 1ci dice che l'indice assegnato al messaggio è 1. Questo indica la locazione dell'SMS nella memoria del modem; -
Linea 9: Il risultato
OKindica che l'esecuzione del comando+CMGWha avuto successo; -
Linea 10: il comando
+CMSSviene usato per spedire i messaggi dalla memoria del modem. 1 indica l'indice dell'SMS ottenuto alla linea 7; -
Linea 11:
+CMSS: 20ci dice che il numero di riferimento assegnato all'SMS è 20; -
Linea 13: Il risultato OK indica che
l'esecuzione del comando
+CMSSha avuto successo.
Per spedire messaggi da un'applicazione, dovete scrivere del codice in grado di connettersi al modem e di inoltrare e ricevere comandi AT. Tale codice può essere scritto in C, C++, Java, Visual Basic, Delphi o in .NET (come preferite). Ad ogni modo, scrivere da zero il vostro codice comporta 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 vostro codice per interagire con il modem GSM/GPRS attraverso i comandi AT, una soluzione migliore consiste nell'usare API o SDK appositi: questi strumenti incapsulano tutti i dettagli di basso livello, in questo modo uno sviluppatore non deve conoscere i comandi AT e la composizione dei messaggi per singolo bit. Alcune librerie supportano anche i protocolli SMSC oltre ai comandi AT.
Alcune librerie open source per la messaggistica SMS possono essere trovate in quest'articolo.
Un altro modo per nascondere i dettagli di basso livello consosite nel sistemare un gateway SMS fra la vostra applicazione e il modem GSM(GPRS. Semplici protocolli quali HTTP / HTTPS possono esser poi usati per spedire i messaggi dall'applicazione. Se un protocollo SMSC (come SMPP, CIMD, ecc) viene usato per comunicare con il gateway SMS invece di HTTP/HTTPS, una libreria o un SDK possono essere molto utili per includere i dettagli del protocollo SMSC.
Conclusioni
In conclusione abbiamo visto che lo svantaggio principale di questa tecnica è la scarsa velocità di trasmissione. Possono essere spediti soltanto da 6 a 10 messaggi al minuto (quando si usa la modalità SMS over GSM). La performance non è abbassata dalla tipologia di connessione fra il computer e il modem GSM/GPRS (USB, seriale, ecc) né dipende dal modem stesso: il fattore determinante è 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/