NCID e OpenWRT

Ho deciso di eliminare tutti i servizi poco pesanti dal server per spostarli sulla mia spettacolare Vodafone Station con OpenWRT.

Ho trovato un sito dove era già fatto il lavoro al 80%:

https://lists.openwrt.org/pipermail/openwrt-devel/2012-September/016640.html

In effetti trovare un buon esempio per la compilazione di programmi non previsti dal trunk, non è semplice.
La versione utilizzata è la 0.84, ma l’ultima versione disponibile è la 1.0: non usate la versine 1.0 in quanto non funziona. Con qualche aggiustamento e riflessioni post installazione il soft funziona alla perfezione.

Il problema l’ho avuto quando ho collegato il modem al router… Mi aspettavo qualche cosa, ma quello che mi diceva il log era veramente troppo poco ..

Mar 99 99:99:99 192.168.Y.X kernel: [177297.336000] usb 3-2: new full-speed USB device number 3 using uhci_hcd

Installato il pacchetto kmod-usb-serial ed anche il pacchetto usbutil (il comando lsusb serve …) inserito nel file modules.d/usb-serial la riga

usbserial vendor=0x0572 product=0x1329

dove i valori sono gli stessi che ha fornito il comando lsusb ed identificano il modem

root@ARV7510PW22:~# opkg install usbutils
Installing usbutils (007-1) to root...
Downloading http://192.168.1.20/barrier_breaker/14.07/lantiq/packages/base/usbutils_007-1_lantiq.ipk.
Installing libusb-1.0 (1.0.9-1) to root...
Downloading http://192.168.1.20/barrier_breaker/14.07/lantiq/packages/base/libusb-1.0_1.0.9-1_lantiq.ipk.
Configuring libusb-1.0.
Configuring usbutils.
root@ARV7510PW22:~# lsusb 
Bus 003 Device 002: ID 0572:1329 Conexant Systems (Rockwell), Inc. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

a questo punto dopo un reboot appare per magia il /dev/ttyUSB0.

Ho installato il pacchetto ncid alla versione 0.84, ma mentre il server ncidd funziona alla perfezione, il paccheto ncid presenta alcune difficoltà.

Per iniziare devo installare il pacchetto tcl in quanto ncid ha bisogno di tale comando. all’interno di ncid ho modificato il comando tclsh da utilizzare impostando tclsh8.5… Ma le difficoltà non sono finite !!
Fissata l’anomalia con tclsh, ne incontro una più grande: un errore legato all’istruzione clock del tcl.
Ho eliminato il problema alla radice, in quanto ho preso il precedente ncid (quello della versione 0.84) ed eseguita la stessa modifica il programma funziona… (ncid non fa altro che il polling del log di ncidd e verificare l’arrivo di una nuova chiamata).

alla fine ho inserito nell’interno del rc.local la riga

ncid --no-gui --program ncid-page &

L’ultima modifica è all’interno del file ncid per l’invio della mail da parte dello stesso ncid:
all’interno di ncid.con ho indicato sendmail come mail program ed ho eliminato la verifica dell’utente …

#if [ -n "$rootID" ]
#then 
#    # send mail as user $PageFrom  
#   echo $use_e $MailMsg |
#       su -s /bin/sh -c "$PageMail $PageOpt $PageTo" $PageFrom 
#else  
#   # send mail as user running script
#   #echo $use_e $MailMsg | $PageMail $PageOpt $PageTo
#    echo -e "Subject:Telefonata da ${NMBR}\nReply-to:emailaddress@gmail.com\n\n${MailMsg}"| $PageMail $PageTo
    echo -e "Subject:Telefonata da ${NMBR}\n\n${MailMsg}"| $PageMail $PageTo

ed il gioco è fatto !!

4 pensieri su “NCID e OpenWRT

  1. Paolo

    Ciao, ho scoperto questo post da una ricerca su google. Ho una domanda da farti: dopo aver installato ncidd e openwrt sulla vodafone station, sei riuscito a filtrare con ncidd le telefonate che si ricevono sulla vodafone station? oppure i driver sono closed source e quindi si può usare la vodafone station solo come un semplice router? Grazie mille per la risposta

    Rispondi
    1. angelo_admin Autore articolo

      Non capisco cosa intendi con “filtrare”, nel senso che ncidd riceve il caller id dal modem e lo rigira al servizio che a te interessa: non sono presenti in alcun caso driver proprietari; come esempio ho modificato gli eseguibili (a mio uso e consumo) per far inviare correttamente la mail con il caller id del chiamante.
      Io la vodafone station modificata con openwrt la utilizzo come firewall, traffic shpaping, access point…

      Ciao e scusa per il ritardo 😉

      Rispondi
      1. Paolo

        Ciao 🙂 ho capito che non hai capito di cosa sto parlando 🙂 Filtrare le telefonate, cioè bloccare quelle indesiderate. Attualmente uso un modem analogico con caller id e un pc su cui gira ncidd. Leggi qui se l’argomento ti interessa: https://murphy101blog.wordpress.com/2013/11/03/raspberry-pi-telephone-number-blocker/

        La cosa interessante della vodafone station e della vodafone come compagnia telefonica è che offre il servizio della fonia su gsm, quindi sarebbe stato intelligente mettere sulle vodafone station un programmino per bloccare le telefonate moleste, come si può fare in ogni smartphone che si rispetti… in modo da offrire uno strumento per proteggere il telefono di casa dai disturbatori dei call center. Ma i dirigenti vodafone vivono in un altro mondo e non capiscono i problemi delle persone comuni e nonostante in tanti abbiano chiesto questa funzione, non è mai stata implementata. La mia speranza era quindi di usare un firmware alternativo con ncidd, ma dalle ricerche che ho fatto sembra che non si possa fare perché i driver della fonia della vodafone station sono closed e quindi non ci sono in openwrt.

        Lo svantaggio della soluzione che ho attualmente (modem analogico con caller id + ncidd) è che nella fonia di casa lo standard etsi dà il caller id dopo il primo squillo telefonico, quindi il mio telefono suona una volta e poi entra in funzione ncidd per bloccare il molestatore, mentre con la compagnia vodafone e sulla vodafone station, le telefonate vanno su gsm e quindi il caller id arriva subito e il programmino anti spam ti blocca le telefonate senza che lo smartphone suoni. Questo era il senso della mia richiesta. Scusa la lungaggine. Ciao

        Rispondi
        1. angelo_admin Autore articolo

          Come hai detto bene tu “lo standard etsi dà il caller id dopo il primo squillo telefonico” ed io non me ne ero mai accorto in quanto il mio cordless “perde” il primo squillo e fa vedere il numero sul display e poi al secondo ring fa partire lo squillo.
          Se giochi con il rasperry pi, potresti farti un programmino o modificare ncidd per alzare un gpio, dopo il primo RING del modem, per far squillare un cicalino che farebbe la parte della suoneria del telefono, telefono al quale avresti rimosso la suoneria.

          Rispondi

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.