Differenze tra le versioni di "NCID"
Riga 1: | Riga 1: | ||
− | Network Caller Id è un software nato | + | Network Caller Id ([http://ncid.sourceforge.net/ NCID]) è un software nato co lo scopo per visualizzare il numero telefonico di chi ci sta chiamando. |
− | |||
− | |||
− | |||
− | Oltre a presentare in generale ncid, vedremo come utilizzarlo per filtrare le chiamate in arrivo ad esempio possiamo | + | Il software supporta diversi tipi di chiamata e di device, il caso più classico che andremo a utilizzare in questa guida è quello della linea pots tradizionale, sono supportate anche la chiamate voip ma al momento non è disponibile la funzionalità che andremo ad utilizzare noi. |
− | + | ||
− | Ncid è costituito da un processo demone che gira in background e fa da server per ricevere ed inviare informazioni, | + | Oltre a presentare in generale ncid, vedremo come utilizzarlo per filtrare le chiamate in arrivo ad esempio possiamo decidere di ricevere le chiamate solo da una lista di numeri oppure al contrario bloccare un solo chiamante. |
− | si occupa infatti di recepire informazioni dal modem collegato alla linea telefonica per mandare la notifica di una | + | |
− | chiamata ad un dispositivo Android oppure ad un client su PC. | + | = Descrizione generale = |
− | + | Ncid è costituito da un processo demone che gira in background e fa da server per ricevere ed inviare informazioni, si occupa infatti di recepire informazioni dal modem collegato alla linea telefonica per mandare la notifica di una chiamata ad un dispositivo Android oppure ad un client su PC. | |
− | + | Al demone (il processo che gira sulla macchina server) si collegano appunto diversi tipi di client, i client possono girare sulla stessa macchina in cui è il escuzione il server appure su altri sistemi. | |
− | + | Ncid può essere utilizzato anche per tenere traccia delle chiamate ricevute, una funzione che ormai supportano parecchi device, ma utile in qualche caso. | |
− | + | ||
− | + | = Requisiti = | |
+ | Vediamo ora la lista del materiale necessario per il nostro setup: | ||
+ | * linea Pots (fisica o uscita nalogica da un modem adsl) | ||
+ | * modem analogico USB con riconoscimento del l'identificativo del numero chiamante | ||
+ | * opzionale ma consigliato hub usb per alimentare il modem | ||
+ | * raspberry pi (non è obbligatorio, la procedura può essere fatta anche con un pc, ma poi il server deve rimanere sempre acceso e quindi meglio sfruttare un sistema a basso consumo) | ||
+ | |||
+ | = Configurazione del modem = | ||
+ | Partiamo dalla configurazione del modem, la configurazione di questo device richiede un pò di elasticità e dipende dal tipo di periferica. | ||
+ | |||
+ | Nel nostro caso abbiamo utilizzato un modem Rockwell USB con identificativo del chiamante. | ||
− | |||
Abbiamo detto che il modem deve supportare il riconoscimento dei toni multifrequenza che codificano l'identità della linea chiamante. | Abbiamo detto che il modem deve supportare il riconoscimento dei toni multifrequenza che codificano l'identità della linea chiamante. | ||
− | Probabilmente non tutti i modem hanno questa caratteristica, ma sul sito di ncid ne potete | + | |
+ | Probabilmente non tutti i modem hanno questa caratteristica, ma sul sito di ncid ne potete trovarne una lista assieme anche ai comandi AT di configurazione dei chipset più diffusi. | ||
+ | |||
+ | La lista dei modelli non è completa, perciò se avete un modem in casa vi conviene fare qualche test e magari siete fortunati. | ||
+ | |||
Innanzitutto cerchiamo il device associato al modem. | Innanzitutto cerchiamo il device associato al modem. | ||
+ | |||
Apriamo un terminale e lanciamo il comando: | Apriamo un terminale e lanciamo il comando: | ||
dmesg | dmesg | ||
Riga 24: | Riga 35: | ||
Ora inseriamo il modem nella porta USB e lanciamo di nuovo il comando | Ora inseriamo il modem nella porta USB e lanciamo di nuovo il comando | ||
dmesg. | dmesg. | ||
+ | |||
Se il modem è stato riconosciuto vedremo alcune righe in più rispetto alla prima volta con l'indicazione del device assegnato al modem ad esempio ACM0 oppure AMA0 infine USB0 si tratta di device seriali come quelli utilizzati da Arduino. | Se il modem è stato riconosciuto vedremo alcune righe in più rispetto alla prima volta con l'indicazione del device assegnato al modem ad esempio ACM0 oppure AMA0 infine USB0 si tratta di device seriali come quelli utilizzati da Arduino. | ||
+ | |||
Ora possiamo dare il comando | Ora possiamo dare il comando | ||
ls -lrt /dev | ls -lrt /dev | ||
− | + | controllando la presenza del device con il nome ricavato con il comando dmesg- | |
+ | |||
In questo esempio supponiamo che il device del nostro modem sia /dev/ttyACM0 | In questo esempio supponiamo che il device del nostro modem sia /dev/ttyACM0 | ||
+ | |||
Ora proviamo a vedere se il modem supporta il riconoscimento del numero chiamante. | Ora proviamo a vedere se il modem supporta il riconoscimento del numero chiamante. | ||
− | Installiamo un programma di comunicazione seriale ad esempio | + | |
+ | Installiamo un programma di comunicazione seriale ad esempio picocom | ||
sudo apt-get install picocom | sudo apt-get install picocom | ||
− | E connettiamoci al modem | + | E connettiamoci al modem specificando la velocità di comunicazione del modem in questo caso 38400 |
− | picocom /dev/ttyACM0 | + | picocom /dev/ttyACM0 -b 38400 |
Ora per controllare se siamo veramente connessi al modem e se la velocità di comunicazione è corretta digitiamo il comando | Ora per controllare se siamo veramente connessi al modem e se la velocità di comunicazione è corretta digitiamo il comando | ||
AT | AT | ||
Riga 48: | Riga 64: | ||
NAME = O | NAME = O | ||
“ | “ | ||
− | |||
− | |||
− | |||
+ | = Installazione del software = | ||
+ | Ora possiamo procedere all'installazione del software. | ||
+ | |||
+ | Prima di tutto installiamo le dipendenze | ||
sudo apt-get install libpcap0.8 | sudo apt-get install libpcap0.8 | ||
− | + | Ora installiamo l'ultima versione di ncid che si trova susourceforge.net, per raspberry sono già pronti i files .deb perciò basta scaricarli con il comando wget. | |
+ | (Verifichiamo a [http://sourceforge.net/projects/ncid/files/ncid/ questa pagina] se sono presenti nuove versioni) | ||
wget http://downloads.sourceforge.net/ncid/ncid_1.2-1_armhf.deb | wget http://downloads.sourceforge.net/ncid/ncid_1.2-1_armhf.deb | ||
− | + | Ora avremo un file .deb nella cartella in cui ci troviamo e basta lanciare l'installazione con dpkg | |
dpkg -i ncid_1.2-1_armhf.deb | dpkg -i ncid_1.2-1_armhf.deb | ||
Riga 65: | Riga 83: | ||
sudo nano /etc/ncid/ncidd.conf | sudo nano /etc/ncid/ncidd.conf | ||
+ | = Configurazione = | ||
Nel nostro caso decommentiamo le righe | Nel nostro caso decommentiamo le righe | ||
Riga 71: | Riga 90: | ||
set ttyspeed = velocità della seriale | set ttyspeed = velocità della seriale | ||
set lockfile = /var/lock/LCK..ttyACM0 | set lockfile = /var/lock/LCK..ttyACM0 | ||
− | |||
− | Se abbiamo fatto tutto correttamente il demone dovrebbe essere in funzione, | + | Ora possiamo chiudere il file di configurazione e rilanciare il demone. |
+ | |||
+ | /etc/init.d/ncidd restart | ||
+ | |||
+ | Se abbiamo fatto tutto correttamente il demone dovrebbe essere in funzione. | ||
+ | |||
+ | = Debug = | ||
+ | Spesso riuscire a configurare tutto al primo tentativo, quindi: | ||
+ | |||
+ | Fermiamo il demone | ||
+ | |||
+ | /etc/init.d/ncidd stop | ||
+ | |||
+ | Lanciamo il demone in modalità debug | ||
ncidd -Dv3 | ncidd -Dv3 | ||
− | Lanciato il comando di debug vediamo il programma che parte e riconosce il modem e resta in attesa della | + | Lanciato il comando di debug vediamo il programma che parte e riconosce il modem e resta in attesa della chiamata. |
Modem supports Data Mode | Modem supports Data Mode | ||
Riga 98: | Riga 129: | ||
NCID connection socket is sd 4 pos 1 | NCID connection socket is sd 4 pos 1 | ||
− | Ora possiamo | + | = Configurazione delle liste chiamanti = |
+ | Ora possiamo fermiamo il debug con Ctrl + c e proviamo a mettere il nostro numero di cellulare in blacklist | ||
sudo nano /etc/ncid/ncidd.blacklist | sudo nano /etc/ncid/ncidd.blacklist | ||
− | Aggiungiamo in fondo al file una riga | + | Aggiungiamo in fondo al file una riga col numero telefonico |
− | + | ^33123456789 | |
− | + | Sono ammessi anche caratteri jolly ad esempio ^ indica l'inizio della stringa e * indica qualsiasi carattere | |
− | ^ | + | |
+ | Ad esempio: | ||
+ | ^051* | ||
+ | indica tutti i numeri con prefisso 051. | ||
Ora proviamo a chiamare dopo aver rilanciato il processo in debug | Ora proviamo a chiamare dopo aver rilanciato il processo in debug | ||
Riga 109: | Riga 144: | ||
HUP: *DATE*12122015*TIME*2120*LINE*-*NMBR*”numero del chiamante”*MESG*NONE*NAME*OUT-OF-AREA* | HUP: *DATE*12122015*TIME*2120*LINE*-*NMBR*”numero del chiamante”*MESG*NONE*NAME*OUT-OF-AREA* | ||
− | Nel log si vedrà il numero del chiamante, usando la ncidd.blacklist o ncidd.whitelist possiamo bloccare | + | Nel log si vedrà il numero del chiamante, usando la ncidd.blacklist o ncidd.whitelist possiamo bloccare dei numeri o una serie di numeri e abilitarne altri, lavorando con queste due liste si può configurare il programma per filtrare le chiamate. |
− | + | ||
+ | Ricordate che mettendo un numero nel file whitelist si disabilitano tutti gli altri possibili numeri e viceversa con il file blacklist. | ||
+ | |||
+ | = Note = | ||
+ | I modem analogici a volte hanno problemi e smettono di funzionare abbiamo fatto un pò di test e ogni tanto vanno resettati. | ||
+ | |||
+ | = Riferimenti = | ||
+ | |||
+ | * [http://ncid.sourceforge.net/doc/NCID_Documentation.html#modems_top Lista hardware compatibile e comandi AT per caller ID] | ||
− | By Msystem & | + | By Msystem & dancast78 |
Versione delle 22:43, 13 dic 2015
Network Caller Id (NCID) è un software nato co lo scopo per visualizzare il numero telefonico di chi ci sta chiamando.
Il software supporta diversi tipi di chiamata e di device, il caso più classico che andremo a utilizzare in questa guida è quello della linea pots tradizionale, sono supportate anche la chiamate voip ma al momento non è disponibile la funzionalità che andremo ad utilizzare noi.
Oltre a presentare in generale ncid, vedremo come utilizzarlo per filtrare le chiamate in arrivo ad esempio possiamo decidere di ricevere le chiamate solo da una lista di numeri oppure al contrario bloccare un solo chiamante.
Descrizione generale
Ncid è costituito da un processo demone che gira in background e fa da server per ricevere ed inviare informazioni, si occupa infatti di recepire informazioni dal modem collegato alla linea telefonica per mandare la notifica di una chiamata ad un dispositivo Android oppure ad un client su PC. Al demone (il processo che gira sulla macchina server) si collegano appunto diversi tipi di client, i client possono girare sulla stessa macchina in cui è il escuzione il server appure su altri sistemi. Ncid può essere utilizzato anche per tenere traccia delle chiamate ricevute, una funzione che ormai supportano parecchi device, ma utile in qualche caso.
Requisiti
Vediamo ora la lista del materiale necessario per il nostro setup:
- linea Pots (fisica o uscita nalogica da un modem adsl)
- modem analogico USB con riconoscimento del l'identificativo del numero chiamante
- opzionale ma consigliato hub usb per alimentare il modem
- raspberry pi (non è obbligatorio, la procedura può essere fatta anche con un pc, ma poi il server deve rimanere sempre acceso e quindi meglio sfruttare un sistema a basso consumo)
Configurazione del modem
Partiamo dalla configurazione del modem, la configurazione di questo device richiede un pò di elasticità e dipende dal tipo di periferica.
Nel nostro caso abbiamo utilizzato un modem Rockwell USB con identificativo del chiamante.
Abbiamo detto che il modem deve supportare il riconoscimento dei toni multifrequenza che codificano l'identità della linea chiamante.
Probabilmente non tutti i modem hanno questa caratteristica, ma sul sito di ncid ne potete trovarne una lista assieme anche ai comandi AT di configurazione dei chipset più diffusi.
La lista dei modelli non è completa, perciò se avete un modem in casa vi conviene fare qualche test e magari siete fortunati.
Innanzitutto cerchiamo il device associato al modem.
Apriamo un terminale e lanciamo il comando:
dmesg
Vedremo scorrere i messaggi del kernel. Ora inseriamo il modem nella porta USB e lanciamo di nuovo il comando
dmesg.
Se il modem è stato riconosciuto vedremo alcune righe in più rispetto alla prima volta con l'indicazione del device assegnato al modem ad esempio ACM0 oppure AMA0 infine USB0 si tratta di device seriali come quelli utilizzati da Arduino.
Ora possiamo dare il comando
ls -lrt /dev
controllando la presenza del device con il nome ricavato con il comando dmesg-
In questo esempio supponiamo che il device del nostro modem sia /dev/ttyACM0
Ora proviamo a vedere se il modem supporta il riconoscimento del numero chiamante.
Installiamo un programma di comunicazione seriale ad esempio picocom
sudo apt-get install picocom
E connettiamoci al modem specificando la velocità di comunicazione del modem in questo caso 38400
picocom /dev/ttyACM0 -b 38400
Ora per controllare se siamo veramente connessi al modem e se la velocità di comunicazione è corretta digitiamo il comando
AT
Se è tutto ok il modem risponde
OK
Ora proviamo a dare il comando che attiva il riconoscimento della linea chiamante
AT+VCID=1
Se il modem risponde OK è il momento di provare a chiamare e vedere se il risultato è quello atteso.
“ RING DATE = 0908 TIME = 2025 NMBR = xxxxxxxxx //Apparità il numero del chiamante NAME = O “
Installazione del software
Ora possiamo procedere all'installazione del software.
Prima di tutto installiamo le dipendenze
sudo apt-get install libpcap0.8
Ora installiamo l'ultima versione di ncid che si trova susourceforge.net, per raspberry sono già pronti i files .deb perciò basta scaricarli con il comando wget. (Verifichiamo a questa pagina se sono presenti nuove versioni)
wget http://downloads.sourceforge.net/ncid/ncid_1.2-1_armhf.deb
Ora avremo un file .deb nella cartella in cui ci troviamo e basta lanciare l'installazione con dpkg
dpkg -i ncid_1.2-1_armhf.deb
Ora che il programma è installato andiamo a configurare le impostazioni del processo demone
sudo nano /etc/ncid/ncidd.conf
Configurazione
Nel nostro caso decommentiamo le righe
set hangup = 1 set ttyport = /dev/ttyACM0 set ttyspeed = velocità della seriale set lockfile = /var/lock/LCK..ttyACM0
Ora possiamo chiudere il file di configurazione e rilanciare il demone.
/etc/init.d/ncidd restart
Se abbiamo fatto tutto correttamente il demone dovrebbe essere in funzione.
Debug
Spesso riuscire a configurare tutto al primo tentativo, quindi:
Fermiamo il demone
/etc/init.d/ncidd stop
Lanciamo il demone in modalità debug
ncidd -Dv3
Lanciato il comando di debug vediamo il programma che parte e riconosce il modem e resta in attesa della chiamata.
Modem supports Data Mode Modem supports FAX Mode 1 Modem supports FAX Mode 2 Modem supports VOICE Mode Hangup option = 1: hangup on a blacklisted call Sent Modem 11 of 11 characters: AT+VCID=1 Modem response: 17 characters in 1 read: T+VCID=1 OK Modem set for CallerID. Modem used for CallerID and to terminate calls Using simple expressions in blacklist/whitelist files Network Port: 3333 Debug Mode Not using PID file, there was no '-P' option. Modem is fd 3 NCID connection socket is sd 4 pos 1
Configurazione delle liste chiamanti
Ora possiamo fermiamo il debug con Ctrl + c e proviamo a mettere il nostro numero di cellulare in blacklist
sudo nano /etc/ncid/ncidd.blacklist
Aggiungiamo in fondo al file una riga col numero telefonico
^33123456789
Sono ammessi anche caratteri jolly ad esempio ^ indica l'inizio della stringa e * indica qualsiasi carattere
Ad esempio:
^051*
indica tutti i numeri con prefisso 051.
Ora proviamo a chiamare dopo aver rilanciato il processo in debug
HUP: *DATE*12122015*TIME*2120*LINE*-*NMBR*”numero del chiamante”*MESG*NONE*NAME*OUT-OF-AREA*
Nel log si vedrà il numero del chiamante, usando la ncidd.blacklist o ncidd.whitelist possiamo bloccare dei numeri o una serie di numeri e abilitarne altri, lavorando con queste due liste si può configurare il programma per filtrare le chiamate.
Ricordate che mettendo un numero nel file whitelist si disabilitano tutti gli altri possibili numeri e viceversa con il file blacklist.
Note
I modem analogici a volte hanno problemi e smettono di funzionare abbiamo fatto un pò di test e ogni tanto vanno resettati.
Riferimenti
By Msystem & dancast78