Pages: [1]   Go Down
Author Topic: Risponditore telefonico DTMF  (Read 1526 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti,

Conoscete qualche shield di riconscimento toni DTMF per creare una sorta di risponditore automatico?

La mia idea e' di interporre l'Arduino (con opportuna shield) tra la presa del telefono di casa (quindi non GSM) e il cordless.
L'Arduino avrebbe il compito di:
- riconoscere il RING e il numero del chiamante, mantenento inibito il RING verso il cordless.
- se il chiamante non e' stato riconosciuto, fa passare la chiamata al cordless che iniziera' a squillare
- se il chiamante viene riconosciuto, senza far squillare il cordless, deve poter rispondere in modo automatico e riconoscere/inviare toni dtmf a chi chiama (terminando poi la chiamata)

Attualmente ho l'Arduino UNO ma con una opportuna shield si potrebbe ottimizzare con un Arduino Nano/Mini in quanto  la necessita' e' di memorizzare 2 numeri di telefono e 3-4 codici dtmf.

C'e' qualcuno che ha gia' fatto qualcosa del genere?
Grazie
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 234
Posts: 20196
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma vuoi rispondere al telefono solo a chi chiama con il numero di tel sopresso?

Non ho mica idea come viene trasmesso il numero di chi chiama. Comunque é un servizio che deve essere attivato.

Per il DTMF:
http://code.google.com/p/arduino-based-dtmf-decoder/
http://blog.makezine.com/2010/06/26/dtmf-shield-adds-touchtones-to-the/

Ciao Uwe
« Last Edit: April 10, 2012, 05:27:59 am by uwefed » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma vuoi rispondere al telefono solo a chi chiama con il numero di tel sopresso?
L'Arduno dovrebbe rispondere al numero che ha in memoria e attendere un codice dtmf a cui rispondera' con un suo codice, sempre in dtmf, per poi terminare la chiamata.
Naturalmente, se al telefono "risponde" l'Arduino, e' preferibile che non si senta alcuno squillo, non avrebbe senso scomodare l'utente.
Mentre se il numero del chiamante non e' quello memorizzato, allora l'Arduino lascia passare la telefonata e si mette da parte.

Non ho mica idea come viene trasmesso il numero di chi chiama. Comunque é un servizio che deve essere attivato.

Probabilmente non sono stato del tutto chiaro, provo a riformulare.
Posto che il servizio del gestore telefonico di fornitura del numero chiamante sia attivo (ormai lo e' sempre), l'Arduino dovrebbe decodificare il numero del chiamante mentre la chiamata e' in arrivo (cioe' ancor prima di aprire la cominicazione). In poche parole, dovrebbe fare la stessa cosa che fa il cordless quando ci visualizza il numero mentre il telefono squilla.

Schematizzando, ecco le funzioni che dovrebbero esserci nello shield:
- riconoscimento lo stato di RING presente sul doppino
- decodifica del numero chiamante
- cambiamento di stato da "ascolto" a "colloquio" ("alzare la cornetta")
- trasmissione bidirezionale in DTMF
- chiusura della comunicazione ("abbassare la cornetta")

Grazie dei link ora me li guardo.
Logged

Offline Offline
God Member
*****
Karma: 8
Posts: 550
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

-Per "sospendere" lo squillo, se non sbaglio dovresti filtrare la componente alternata di 90(o 150??)volt..invece di solito quando la cornetta è abbassata ci sono sui 48 volt che si abbassano a 12 quando alzi la cornetta..spero di non dire una castroneria,ma direi che potresti semplicemente mettere un relè tra telefono e linea pilotato dall'arduino..quando intercetta una chiamata,scollega subito il telefono se vuole,altrimenti lo lascia com'è..
-per il numero: nei modem gsm(penso funzioni anche così per quelli pstn) basta mandare all'inizio il comando AT+CLIP=1...da lì in poi, quando qualcuno chiama,oltre a scrivere ring ti scrive anche il numero di cellulare compreso tra i doppi apici..per trovarlo, fai qualcosa del tipo num=strstr(RXmodem,"/"+39") e avrai che num punta al numero di telefono..dovrai fermarti a leggerlo al successivo "
« Last Edit: April 10, 2012, 08:12:28 am by m_ri » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

-per il numero: nei modem gsm(penso funzioni anche così per quelli pstn) basta mandare all'inizio il comando AT+CLIP=1...da lì in poi, quando qualcuno chiama,oltre a scrivere ring ti scrive anche il numero di cellulare compreso tra i doppi apici..per trovarlo, fai qualcosa del tipo num=strstr(RXmodem,"/"+39") e avrai che num punta al numero di telefono..dovrai fermarti a leggerlo al successivo "

Sebbene non avessi intenzione di usare un modem, puo' essere un'idea, anzi, ho gia' un modem interno per notebook che usa un connettore micro-pci e forse apro un topic per capire come utilizzarlo.
Oppure si puo' valutare l'uso di un modem embedded generico che si trova in rete.

Pero' vorrei evitare l'uso di un modem, mi sembra eccessivo per quello che voglio fare.
Logged

Offline Offline
Sr. Member
****
Karma: 2
Posts: 336
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ti faccio un UP perchè è un progetto molto interessante smiley
Logged

Offline Offline
God Member
*****
Karma: 8
Posts: 550
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

mhh,da una veloce ricerca ho trovato qua http://www.datasheetcatalog.com/catalog/p764200.shtml il componente PCD3316..
però ti dico subito che ho fatto una ricerca mooolto superficiale..  smiley
Logged

Pages: [1]   Go Up
Jump to: