Christian Castelli
a- a+

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:

  1. 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;
  2. 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 (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 risposta OK alla linea seguente indica che linea di comando AT+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, digitate AT+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, premete Ctrl+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 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.

 



Ti potrebbe interessare anche

commenta la notizia

Ci sono 3 commenti
Anonimo
mi chiami adesso cosi ti dido le ultime novita e cosi ci diamo la buona notte mi manchi tanto

antonio20k1
illuminante ed utile... non hai detto però come interfacciarsi.
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/