Come utilizzare la SMS Machine/HTTP con ASPData di pubblicazione: 17-10-2003 | Versione Italiana | (No English Version) Parole chiave: - How-To - SMS Machine - |
SMS Machine/HTTP è un dispositivo hardware che consente di ricevere SMS da una carta SIM GSM e comunicarli
direttamente ad un server Web. SMS Machine/HTTP è in grado anche di trasmettere SMS tramite una carta SIM
su richiesta di un server Web.
Se desideriamo, ad esempio, ricevere un SMS senza dover installare ulteriori servizi sul nostro server Web o
dover interfacciare un modem GSM su una delle linee seriali del server, sarà sufficente collegare la
SMS Machine/HTTP sulla nostra rete e configurarla perchè richiami un nostro script ASP ad ogni messaggio ricevuto
passandogli direttamente il numero di telefono del mittente ed il testo del messaggio all'interno di variabili HTTP.
Allo stesso modo possiamo effettuare facilmente delle trasmissioni di SMS da script ASP.
In questo caso, supponendo che la nostra SMS Machine / HTTP risponda all'indirizzo IP 192.168.0.101,
non dovremo fare altro che richiedere dal nostro script ASP il seguente indirizzo http://192.168.0.101/smssend.cgi,
passando in modalità POST il numero ed il testo dell'SMS che intendiamo inviare.
Scopo di questo articolo è fornire un esempio pratico di utilizzo da usare come base per le proprie applicazioni.
Vediamo quindi come realizzare un sistema che riceva un SMS, lo memorizzi in un database Microsoft Access ed invii
un SMS di risposta al mittente.
Di cosa abbiamo bisogno
Ecco quello che occorre per realizzare il nostro sistema:
- Un PC dotato di sistema operativo Windows su cui gira il nostro Server Web IIS ed i nostri script ASP
- Microsoft Access (o le librerie ADO - Database Conenction Object). In alternativa è possibile scaricare
una versione delle librerie ADO da questo
link del sito della Microsoft
- Una SMS Machine / HTTP connessa in rete locale con il Server Web
Per poter inviare SMS faremo uso anche di una estensione ad IIS. Si tratta della DLL ASPtear tramite la
quale potremo effettuare richieste HTTP dai nostri script ASP verso server Web esterni. In pratica con questa
libreria possiamo simulare all'interno dei nostri script una richiesta Web verso l'esterno come se fosse
generata da un normale browser web.
E' possibile scaricare liberamente ASPtear da
http://www.alphasierrapapa.com/IISdev/Components/.
Ricezione di un SMS
Per ricevere un SMS dobbiamo, per prima cosa, avere configurato la nostra SMS Machine per fare in modo
che, alla ricezione dell'SMS stesso, richiami uno script che risiede sul nostro server Web.
Nel seguito supporremo che tale server risponda all'indirizzo IP 192.168.0.50.
Lanciamo il configuratore della SMS Machine / HTTP e scriviamo nell'apposito campo il percorso verso
lo script che scriveremo per gestire i messaggi: http://192.168.0.50/ricevi.asp.
Scegliamo anche la modalità con cui vogliamo che ci vengano trasmessi i parametri, POST oppure GET.
Nel nostro caso esamineremo entrambe le possibilità, cominciando dalla modalità POST.
Apriamo il nostro editor favorito e inziamo a creare lo script ricevi.asp:
// ------------------------------------------------------------
// Ricava i parametri passati dalla SMS Machine con il POST
// ------------------------------------------------------------
var Telefono=Request.Form("sms_num");
var Data=Request.Form("sms_date");
var Testo=Request.Form("sms_text");
var Code=Request.Form("sms_code");
// ------------------------------------------------------------
Con queste semplici istruzioni abbiamo già ottenuto un notevole risultato: nelle variabili dello script
Telefono, Data e Testo sono ora memorizzati tutti i dati dell'SMS Ricevuto.
Da questo punto in poi lo script si potrebbe sviluppare in moltissimi modi, secondo le nostre esigenze.
Noi scegliamo di inserirlo in un database e di rispondere all'utente confermandogli che la memorizzazzione è
avvenuta con successo.
Se invece preferiamo utilizzare la modalità GET dobbiamo modificare leggermente il nostro script,
come qui di seguito mostrato:
// ------------------------------------------------------------
// Ricava i parametri passati dalla SMS Machine con il GET
// ------------------------------------------------------------
var Telefono=Request("sms_num");
var Data=Request("sms_date");
var Testo=Request("sms_text");
var Code=Request("sms_code");
// ------------------------------------------------------------
Inserimento dei dati in un database
Per l'inserimento dei dati supporremo di avere creato con Microsoft Access un database chiamato messaggi.mdb,
in cui è presente una tabella sms_ricevuti. Tale tabella contiene i campi Data, Numero e Messaggio.
La connessione verso il Database può avvenire in diversi modi ed utilizzando diversi strumenti (ADODB, ODBC) a
secondo della base dati utilizzata (Access, SQL Server o altre basi dati); in ogni caso comunque l'importante è
stabilire la connessione con il database creato per poter eseguire la query di inserimento.
Aggiungiamo quindi al nostro script ricevi.asp le seguenti righe:
// Ricava il percorso del Database nel filesystem
filePath = Server.MapPath("messaggi.mdb")
// Apre la connessione verso il Database
Set AdoConn = Server.CreateObject("ADODB.Connection")
AdoConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filePath
// Esegue la query SQL
query="INSERT INTO sms_ricevuti (Data, Numero, Messaggio) /
VALUES ('" & Data & "', '" & Telefono & "', '" & Testo & "')"
AdoConn.Execute query
// Chiude la connessione
AdoConn.close
A questo punto il messaggio ricevuto è stato salvato nel database: non dobbiamo fare altro che rispondere
all'utente che tutto è andato bene.
Invio dell'SMS di risposta
Per l'invio dell'SMS di risposta abbiamo la necessità di richiamare una pagina che si trova sul server
Web interno alla SMS Machine, inviandole in POST i parametri dell'SMS da spedire. Per tale scopo abbiamo
bisogno della dll ASPTear.dll, che quindi deve essere installata sul nostro server.
Per installare la dll è sufficiente copiarla in una cartella (ad esempio C:\WINNT\system32) e poi dal
menu Start->Esegui digitare il comando
regsvr32 C:\WINNT\system32\ASPtear.dll
A questo punto la dll è disponibile per IIS e possiamo includerla nei nostri script come un qualsiasi altro oggetto.
Aggiungiamo quindi al nostro script le seguenti istruzioni:
// Crea l'oggetto ASPTear
xobj = Server.CreateObject("SOFTWING.ASPtear");
// Codifica il testo per la transazione HTTP
Testo="Il tuo SMS è stato correttamente inserito nel database."
Testo=Server.URLEncode(Testo);
Response.ContentType = "text/html";
// Apre la pagina di invio della SMS Machine
strRetval = xobj.Retrieve("http://192.168.0.101/smssend.cgi", 1, /
"text="+Testo+"&Pwd="+Code+"&num="+Numero+"&mode=0", "", "");
La prima istruzione crea il riferimento all'oggetto ASPTear; successivamente il testo dell'SMS di risposta
viene codificato per poter essere spedito tramite la transazione HTTP. La riga che esegue il compito
fondamentale è l'ultima che apre la connessione HTTP verso la SMS Machine, passandole i parametri per
l'invio dell'SMS di risposta.
A questo punto il ciclo è completo e l'utente che ha inviato il messaggio vedrà arrivare la conferma
direttamente sul suo telefonino.
Nota: la dll AspTear può essere sostituita con altri metodi equivalenti per ricevere una pagina da un
sito Web; ad esempio è possibile utilizzare l'ogetto Winsock per aprire una conenssione verso il server e
mandare un comando di GET.
Sviluppi e potenzialità del sistema
Con il metodo appena visto è possibile integrare in maniera semplice ed immediata, la messaggistica SMS
nel nostro sito Web o nella nostra applicazione.
Ad esempio si potrebbe creare un database che contenga informazioni rilevanti per i nostri utenti
(ad esempio una rubrica telefonica) e permettere loro di interrogarlo via SMS. Per fare questo
sarebbe sufficiente analizzare il messaggio in arrivo alla ricerca di comandi di interrogazione da noi
definiti, effettuare le query sul database e ritornare i dati ottenuti all'utente attraverso l'SMS di risposta.
Un'altra applicazione di semplicissima realizzazione potrebbe essere un "deposito" di SMS che l'utente
possa poi accedere via Web.
Inoltre il sistema ha notevoli doti di scalabilità: è sufficiente aggiungere sulla rete nuove
SMS Machine (fino ad esaurimento degli IP della rete!) per poter aggiungere nuovi numeri GSM per la ricezione,
utilizzando lo stesso server per il trattamento degli SMS.
Download
In questa sezione vengono riportati tutti i file necessari per eseguire gli esempi riportati in questo articolo.
Dll ASPTear versione 1.0
Script ricevi.asp di ricezione, memorizzazione nel database e reinvio di un SMS
Script di ricezione tramite POST
Script di ricezione tramite GET
Script di ricezione e reinvio
Maggiori informazioni su SMS Machine/HTTP
Articoli correlati
- SMS Machine/HTTP - Gateway SMS - HTTP
SMS Machine/HTTP riceve e trasmette messaggi SMS e li comunica direttamente ai tuoi script web qualunque sia il linguaggio di programmazione o il sistema operativo scelto. Funziona con normali carte SIM di qualunque operatore telefonico alle normali tariffe commerciali. SMS Machine/HTTP è un prodotto professionale dedicato alle aziende che sviluppano servizi WEB e desiderano integrare le loro applicazioni con la messaggistica SMS in modo rapido, semplice ed economico!
Segnala questo articolo:
Parole chiave: - How-To - SMS Machine -
|