Discussione:
AT-COMMAND per invio sms
(troppo vecchio per rispondere)
MICHELE
2006-10-17 12:42:24 UTC
Permalink
Salve,
non so se qui è il posto corretto per porre questa domanda, ma spero
di trovare aiuto
Vorrei creare un programmino in visual basic che invia sms con i
comandi AT
Come prima cosa vorrei creare un file cmd che funziona con numero di
telefono 1111111111 e messaggio "prova"
Ho visto che per connettersi al telefonino (nokia) bisogna scegliere
su hyperterminal la com55
se scrivo AT risponde ok ma per il resto dà sempre errore.

Ho trovato un posto post interessante dove c'è scritto
AT+CPMS="BM" imposta la memoria del telefono piuttosto che quella nella
SIM
AT+CMGF=1 imposta l'SMS nel formato testo
AT+CMGS per spedire gli SMD

esempio: AT+CMGS="+3911111111111"<CR>"Testo del messaggio"<ctrl-Z>

AT+CMGR per leggere gli sms
esempio: AT+CMGR=1 per leggere il messaggio dalla locazione 1
AT+CMGL per visualizzare tutti i messaggi

Purtroppo mi dà sempre errore
Mi pare di essere molto lontano..mi potete aiutare?
Grazie per l'attenzione
Roberto Montaruli
2006-10-17 19:44:54 UTC
Permalink
Post by MICHELE
Salve,
non so se qui è il posto corretto per porre questa domanda, ma spero
di trovare aiuto
Vorrei creare un programmino in visual basic che invia sms con i
comandi AT
Intendi dire i comandi Hayes per il modem.
Non sapevo che esistesse una estensione per mandare SMS, ma prendo atto
con piacere della cosa.
Post by MICHELE
Come prima cosa vorrei creare un file cmd che funziona con numero di
telefono 1111111111 e messaggio "prova"
Qui non ho capito o ti sei spiegato male.
Post by MICHELE
Ho visto che per connettersi al telefonino (nokia) bisogna scegliere
su hyperterminal la com55
se scrivo AT risponde ok ma per il resto dà sempre errore.
Che c'entra hyperterminal col visual basic?
Non e' il caso che prima spieghi esattamente com'e' la tua
configurazione e che oggetto usi in visual basic per colloquiare con la
porta seriale (stiamo parlando di porte seriali, vero?)
Post by MICHELE
Ho trovato un posto post interessante dove c'è scritto
AT+CPMS="BM" imposta la memoria del telefono piuttosto che quella nella
SIM
AT+CMGF=1 imposta l'SMS nel formato testo
AT+CMGS per spedire gli SMD
Dove hai trovato queste informazioni?
Sono standard, o funzionano solo per un determinato modello?
Perche' anche ai tempi dei modem c'era un subset di comandi hayes
personalizzati...
Post by MICHELE
esempio: AT+CMGS="+3911111111111"<CR>"Testo del messaggio"<ctrl-Z>
AT+CMGR per leggere gli sms
esempio: AT+CMGR=1 per leggere il messaggio dalla locazione 1
AT+CMGL per visualizzare tutti i messaggi
Cioe' devi inviare la stringa "AT+CMGL"<CR> ?
Post by MICHELE
Purtroppo mi dà sempre errore
Che tipo di errore e dove?
Non puoi postare un po' di codice?
Post by MICHELE
Mi pare di essere molto lontano..mi potete aiutare?
Volentieri, ma devi essere un po' piu' preciso.
Post by MICHELE
Grazie per l'attenzione
Prego.
Andrea Laforgia
2006-10-17 20:03:15 UTC
Permalink
On Tue, 17 Oct 2006 21:44:54 +0200, Roberto Montaruli
Post by Roberto Montaruli
Non sapevo che esistesse una estensione per mandare SMS, ma prendo atto
con piacere della cosa.
Sì, sono comandi supportati da qualunque modem GSM.
Post by Roberto Montaruli
Post by MICHELE
Ho visto che per connettersi al telefonino (nokia) bisogna scegliere
su hyperterminal la com55
se scrivo AT risponde ok ma per il resto dà sempre errore.
Che c'entra hyperterminal col visual basic?
Credo che stia facendo delle prove con HT.
Post by Roberto Montaruli
Non e' il caso che prima spieghi esattamente com'e' la tua
configurazione e che oggetto usi in visual basic per colloquiare con la
porta seriale (stiamo parlando di porte seriali, vero?)
Sì, si tratta di porte seriali.
Post by Roberto Montaruli
Sono standard, o funzionano solo per un determinato modello?
Sono standard.
MICHELE
2006-10-19 13:45:40 UTC
Permalink
Vi ringrazio per le risposte e vi spiego meglio il mio obbiettivo.
Ho installato Microsoft sms sender sul mio pc
Sucessivamente ho fatto un semplice programmino in Access che
praticamente si basa su sms sender. Ho una rubrica ...una regitrazione
in un database dei messaggi inviati ..report statistiche..

Il problema è che smssender al momento dell'invio fa comparire un
msgbox con la scritta:
messaggio inviato
Se non si preme ok non c'è verso di fargli inviare altri messaggi.
La mia idea era quello di crare una programma di rete con una rubrica
unica, uno storico unico ecc... Ora il "server" che dovrebbe
controllare i messaggi provenienti dai vari utenti ed inviarli dopo il
primo messaggio si blocca per quel msgbox..
Non posso quindi usare smssender per inviarli ecco il codice che uso
Str = "C:\Programmi\Microsoft SMS Sender\SMSSender.exe /p:" &
PhoneNumber & " /l /m:""" & SmsMsg & """"
Call Shell(Str, 1)

Inoltre non mi sembra una gran cosa per un programma di invio sms usare
un'altro programma di invio sms. ( un programma su cui non viene
fornito alcun tipo di supporto)

Ricercando altre soluzioni ho letto un post interessante dal titolo
Card PCMCIA GSM per invio SMS
nel gruppo it.tlc.cellulari

Prima di tutto dovrei riuscire a inviare un sms con hyperterminal
poi creare un file cmd funzionante ed infine scrivere uno script
visual basic dove messaggio e numero sono variabili che cambiano di
volta in volta.

Per questo motivo ho chiesto il vostro aiuto
Grazie per l'attenzione
Roberto Montaruli
2006-10-19 15:14:15 UTC
Permalink
Post by MICHELE
Vi ringrazio per le risposte e vi spiego meglio il mio obbiettivo.
Ho installato Microsoft sms sender sul mio pc
Sucessivamente ho fatto un semplice programmino in Access che
praticamente si basa su sms sender. Ho una rubrica ...una regitrazione
in un database dei messaggi inviati ..report statistiche..
Il problema è che smssender al momento dell'invio fa comparire un
messaggio inviato
Se non si preme ok non c'è verso di fargli inviare altri messaggi.
La mia idea era quello di crare una programma di rete con una rubrica
unica, uno storico unico ecc... Ora il "server" che dovrebbe
controllare i messaggi provenienti dai vari utenti ed inviarli dopo il
primo messaggio si blocca per quel msgbox..
Tipico di windows: eliminare quanto piu' possibile la modalita' batch
per obbligare l'utente ad una inutile interoperabilita'.
Post by MICHELE
Non posso quindi usare smssender per inviarli ecco il codice che uso
Str = "C:\Programmi\Microsoft SMS Sender\SMSSender.exe /p:" &
PhoneNumber & " /l /m:""" & SmsMsg & """"
Call Shell(Str, 1)
Ok, il concetto e' chiaro.
Post by MICHELE
Inoltre non mi sembra una gran cosa per un programma di invio sms usare
un'altro programma di invio sms. ( un programma su cui non viene
fornito alcun tipo di supporto)
Qui non mi torna.
Il programma per inviare SMS e' SMSSender.exe.
L'altro programma di cui parli qual e'?
Post by MICHELE
Ricercando altre soluzioni ho letto un post interessante dal titolo
Card PCMCIA GSM per invio SMS
nel gruppo it.tlc.cellulari
Prima di tutto dovrei riuscire a inviare un sms con hyperterminal
poi creare un file cmd funzionante ed infine scrivere uno script
visual basic dove messaggio e numero sono variabili che cambiano di
volta in volta.
Oh Madonna!

Ma non e' tanto piu' semplice, una volta capito quali sono i comandi
Hayes necessari per inviare questo SMS scrivere, con un qualunque
linguaggio con sufficiente versatilita' il seguente:
APRI LA SERIALE
SETTA LA SERIALE
INVIA ALLA SERIALE LA STRINGA "AT etc..."
LEGGI LA RISPOSTA DALLA SERIALE
CHIUDI LA SERIALE
Post by MICHELE
Per questo motivo ho chiesto il vostro aiuto
Grazie per l'attenzione
L'aiuto ti si da' volentieri.
Mi serve sapere di che ambienti di sviluppo disponi.
Hai detto visual basic, speravo in qualcosa di meglio.

In visual basic mi pare di ricordare che ci fosse un oggetto per
colloquiare con la porta seriale.
Mi chiedo se esista un oggetto per la seriale anche in VShell
Vado a documentarmi.
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
Roberto Montaruli
2006-10-19 15:19:07 UTC
Permalink
Bingo!

Ho trovato che esiste questo simpatico oggetto ActiveXperts.Comport
che fa proprio al caso tuo.
Te lo scarichi (e' freeware), lo installi, dopodiche' puoi utilizzarlo
in VBScript e mandare SMS via batch.
C'e' anche un esempio bello pronto!


Send an SMS using a GSM Modem connected to the PC; Enable logging

Const RECIPIENT = "+31624896641"
Const MESSAGE = "Hello, world!"

Set objComport = CreateObject( "ActiveXperts.Comport" )' Create a
new Comport instance

objComport.Device = "Nokia 6680 SmartPhone" ' Use the
Stanrd 9600 bps Modem Telephony driver
objComport.LogFile = "C:\ActiveComport.log" ' Enable
logging

objComport.Open ' Open the
port
Wscript.Echo "Open, result: " & objComport.LastError
If( objComport.LastError <> 0 ) Then
WScript.Quit
End If

WriteStr objComport, "at+cmgs=" & Chr( 34 ) & strNumber & Chr( 34 )
ReadStr objComport
WriteStr objComport, strMessage
strTermCmd = Chr( 26 ) ' Terminate
message: [ctrl]z and then [enter]
WriteStr objComport, strTermCmd
objComport.Sleep 3000 ' It takes
a while before GSM phone responds
ReadStr objComport ' +CMGS:
expected
ReadStr objComport ' OK
expected
objComport.Close ' Close
the port
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
Roberto Montaruli
2006-10-19 15:27:10 UTC
Permalink
Post by Roberto Montaruli
Bingo!
Ho trovato che esiste questo simpatico oggetto ActiveXperts.Comport
che fa proprio al caso tuo.
Te lo scarichi (e' freeware),
Mi correggo, ho letto male la licenza: non e' freeware.
E' shareware con 30 giorni di valutazione.
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
MICHELE
2006-10-19 15:51:50 UTC
Permalink
Post by Roberto Montaruli
Mi correggo, ho letto male la licenza: non e' freeware.
E' shareware con 30 giorni di valutazione.
Ti ringrazio per la tua risposta, proverò e ti faccio sapere.. si
nessun programmatore ama visual-basic e ancora di meno Microsoft Access
..che però mi ha permesso di avvicinarmi gradualmente alla
programmazione. Ora spero di trovare il tempo per studiare c#
A presto
MICHELE
2006-10-19 16:04:11 UTC
Permalink
Post by Roberto Montaruli
Qui non mi torna.
Il programma per inviare SMS e' SMSSender.exe.
L'altro programma di cui parli qual e'?
Un programma fatto da me con Microsoft Access che ha una sua rubrica
una registrazione degli sms inviati , alcune statistiche che si basa su
sql-express come database.
Praticamente è identico a smssender ma ha come obbiettivo un uso
multi-utente.
Pensavo di eseguire una routine ogni 60 secondi che prende dal database
gli sms che devono essere inviati
Roberto Montaruli
2006-10-19 17:55:39 UTC
Permalink
Post by MICHELE
Post by Roberto Montaruli
Qui non mi torna.
Il programma per inviare SMS e' SMSSender.exe.
L'altro programma di cui parli qual e'?
Un programma fatto da me con Microsoft Access che ha una sua rubrica
una registrazione degli sms inviati , alcune statistiche che si basa su
sql-express come database.
Praticamente è identico a smssender ma ha come obbiettivo un uso
multi-utente.
Pensavo di eseguire una routine ogni 60 secondi che prende dal database
gli sms che devono essere inviati
Al di la' del fatto che c'e' di mezzo Access, in pratica il tuo
programma accede ad un database per reperire i dati e utilizza una
procedura esterna (il file.exe) per spedire i SMS.

Non necessariamente devi considerare un programma come un unico file
eseguibile che contiene tutto al suo interno.

Se poi hai questo tipo di esigenze multiutente, potresti pensare di
sviluppare qualcosa con architettura client-server.

Il server e' la parte che si incarica di spedire i SMS quando uno
specifico client ci accede, si identifica e gli fornisce i dati per
spedire il SMS

In tutti i modi, il nucleo del programma, ovvero la parte che dialogando
col modem GSM gli manda i dati per il SMS devi sviluppartela, o usando
quell'oggetto che ti ho trovato o dialogando direttamente con la porta
seriale mediante i metodi che ti mette a disposizione il sistema operativo.
Andrea Laforgia
2006-10-19 20:14:24 UTC
Permalink
On Thu, 19 Oct 2006 19:55:39 +0200, Roberto Montaruli
Post by Roberto Montaruli
Al di la' del fatto che c'e' di mezzo Access,
Access può andare bene per applicazioni semplici come queste.
Post by Roberto Montaruli
Non necessariamente devi considerare un programma come un unico file
eseguibile che contiene tutto al suo interno.
Vero. Io ho già costruito applicazioni di questo tipo. Un'idea
sicuramente carina è quella di usare un server che interfaccia la
seriale e fa un polling, ogni tot, su una base dati, alla ricerca di
messaggi da inviare.

Le applicazioni (in qualsiasi linguaggio siano fatte) che vogliono
mandare SMS non fanno altro che aggiungere un record alla tabella.
MICHELE
2006-10-19 13:46:08 UTC
Permalink
Vi ringrazio per le risposte e vi spiego meglio il mio obbiettivo.
Ho installato Microsoft sms sender sul mio pc
Sucessivamente ho fatto un semplice programmino in Access che
praticamente si basa su sms sender. Ho una rubrica ...una regitrazione
in un database dei messaggi inviati ..report statistiche..

Il problema è che smssender al momento dell'invio fa comparire un
msgbox con la scritta:
messaggio inviato
Se non si preme ok non c'è verso di fargli inviare altri messaggi.
La mia idea era quello di crare una programma di rete con una rubrica
unica, uno storico unico ecc... Ora il "server" che dovrebbe
controllare i messaggi provenienti dai vari utenti ed inviarli dopo il
primo messaggio si blocca per quel msgbox..
Non posso quindi usare smssender per inviarli ecco il codice che uso
Str = "C:\Programmi\Microsoft SMS Sender\SMSSender.exe /p:" &
PhoneNumber & " /l /m:""" & SmsMsg & """"
Call Shell(Str, 1)

Inoltre non mi sembra una gran cosa per un programma di invio sms usare
un'altro programma di invio sms. ( un programma su cui non viene
fornito alcun tipo di supporto)

Ricercando altre soluzioni ho letto un post interessante dal titolo
Card PCMCIA GSM per invio SMS
nel gruppo it.tlc.cellulari

Prima di tutto dovrei riuscire a inviare un sms con hyperterminal
poi creare un file cmd funzionante ed infine scrivere uno script
visual basic dove messaggio e numero sono variabili che cambiano di
volta in volta.

Per questo motivo ho chiesto il vostro aiuto
Grazie per l'attenzione
Loading...