Pagina 1 di 2

Comando AT per estrapolare numero di telefono

MessaggioInviato: 7 ott 2012, 20:05
da mrflower
Salve a tutti,
mi trovo di fronte ad un problema, ovvero quello di dover estrapolare il numero di telefono di un chiamante o del mittente di un sms.
Mi spiego meglio: la mia applicazione (domotica remota) prevede l'attuazione di determinate azioni in seguito alla ricezione di un sms o di una chiamata. Sto utilizzando un ATMEGA8535 e un modulo GSM SIMCOM SIM900.
Arrivato al punto di riuscire a gestire il flusso di sms in entrata e in uscita, così come per le chiamate, mi trovo però in difficoltà di fronte alla necessità di dover consentire i comandi (naturalmente) soltanto ad un determinato numero "master" abilitato.

Spulciando il datasheet del modulo non sono riuscito a trovare niente che possa aiutarmi.
Visto che non è consigliabile lasciare l'applicazione libera di ricevere sms e chiamate da chiunque (se si vuole ritrovare integra la propria casa al ritorno XD) chiedo gentilmente a chi ha più esperienza di me nel settore un aiuto per la risoluzione del problema.

Come ultima spiaggia avevo pensato all'implementazione di una sorta di codice PIN da inserire direttamente come testo nell'sms ma sarebbe una soluzione scomoda e molto meno intuitiva ed elegante seppur attuabile con le mie attuali conoscenze.

Link del datasheet dei comandi AT relativi al modulo in questione: http://garden.seeedstudio.com/images/a/ ... _V1.03.pdf

p.s. So che tramite la codifica PDU degli sms è possibile estrapolare il numero di telefono ma per la mia applicazione ho previsto una codifica "plain text" e la maggior parte del codice l'ho già scritto per lavorare con quest'ultima.

Re: Comando AT per estrapolare numero di telefono

MessaggioInviato: 7 ott 2012, 23:41
da phylum
AT+CMGR=1 :?:
dovrebbe darti il mittente come secondo argomento

Re: Comando AT per estrapolare numero di telefono

MessaggioInviato: 7 ott 2012, 23:45
da mrflower
phylum ha scritto:AT+CMGR=1 :?:
dovrebbe darti il mittente come secondo argomento


Questo comando mi restituisce soltanto il contenuto dell'sms relativo alla locazione di memoria 1.

Re: Comando AT per estrapolare numero di telefono

MessaggioInviato: 7 ott 2012, 23:49
da phylum
non vedo il problema puoi cancellare ogni sms ricevuto dopo l'elaborazione o ascoltare i messaggi CMTI in quel senso o comunque ottenerlo dalla lista di CMGL e pescare quelli con REC_UNREAD; mentre riguardo alla funzione, la specifica che hai allegato dice che restituisce:

+CMGR: "REC UNREAD","+numero_mittente","","02","data_ora",<corpo> \n\nOK

mentre per le chiamate ricevi RING\n+CCWA con il numero a quel punto puoi dare ATH per ignorarla

Re: Comando AT per estrapolare numero di telefono

MessaggioInviato: 7 ott 2012, 23:58
da mrflower
phylum ha scritto:non vedo il problema puoi cancellare ogni sms ricevuto dopo l'elaborazione o ascoltare i messaggi CMTI in quel senso o comunque ottenerlo dalla lista di CMGL e pescare quelli con REC_UNREAD


Infatti non c'è nessun problema, il contenuto dell'sms mi serve anzi. Il problema è che questo comando che dici tu mi restituisce solo il contenuto dell'sms.

phylum ha scritto:+CMGR: "REG UNREAD","+numero_mittente","","02","data_ora",<corpo> \n\nOK


Ho letto anche io questa stringa ma ti posso assicurare che il comando che hai scritto tu mi restituisce soltanto il contenuto dell'sms.

Re: Comando AT per estrapolare numero di telefono

MessaggioInviato: 8 ott 2012, 0:02
da phylum
prova ad inviare AT+CSDH=1 prima di CMGR

Re: Comando AT per estrapolare numero di telefono

MessaggioInviato: 8 ott 2012, 0:09
da mrflower
phylum ha scritto:prova ad inviare AT+CSDH=1 prima di CMGR


Grazie mille :)

Non avevo visto questo comando, praticamente, anche in modalità text, mi mostra i vari parametri dell'sms, era proprio quello che cercavo!

Non posso darti rep+ perché non ho il minimo di rep per farlo XD

Re: Comando AT per estrapolare numero di telefono

MessaggioInviato: 8 ott 2012, 0:27
da phylum
non preoccuparti, qui gli unici che si preoccupano del punteggio di rep# sono quelli che toccano lo zero assoluto :)

tutto quello che ci aspettiamo come ricompensa è una conversazione educata, senza litigi, insulti etc. ed il rispetto delle semplici regole che abbiamo stabilito. O_/ O_/

Re: Comando AT per estrapolare numero di telefono

MessaggioInviato: 8 ott 2012, 0:30
da mrflower
Ti citerò nei ringraziamenti XD

Re: Comando AT per estrapolare numero di telefono

MessaggioInviato: 9 ott 2012, 0:14
da mrflower
mentre per le chiamate ricevi RING\n+CCWA con il numero a quel punto puoi dare ATH per ignorarla

Ti disturbo di nuovo.

Ho risolto per quanto riguarda gli sms ma non riesco ad uscirne invece con le chiamate. Anche settando AT+CCWA=1 (che dovrebbe essere l'equivalente di AT+CSDH=1 per gli sms), al momento della ricezione di una chiamata, l'unico messaggio che vedo è RING, senza +CCWA numero.