Quanto spendo per una connessione gprs/umts ?

Così feci. Ma dopo un mese scopro che mi addebitano 25 euro per traffico GPRS. Non nascondo che ero un po' incazzato per questa faccenda. Tra l'altro lavoravo per la Wind e giù a dirmi che non dovevo usare Vodafone perché con Wind questo non sarebbe successo.

Beh, chiamo il centro servizi e chiedo spiegazioni. Mi fa "ha superato il traffico telefonico limite", e io "cosa? 500 mega? con una connessione GPRS? guardi che sbaglia", "no". Ebbi a che fare con diversi operatori (telefonisti). Le risposte erano varianti casuali.

Capitava che al tempo avessi su una Debian sul laptop .. decisi di fare qualcosa per risolvere quest'arcano ... /var/log/messages? esatto

Diedi un'occhiata col less ...

Jul  3 12:34:29 fincos pppd[27733]: Sent 39566 bytes, received 415222 bytes.

No, forse è meglio "grep -e 'pppd.*Sent' messages|less"

4133 + 20392 + 39566 ...

... vabbè, ma non sono una calcolatrice, non io.

#!/usr/bin/perl -w

open(FILE,"<messages");

$bytes = 0;
while ($line = ) {
    if ($line =~ /pppd.*Sent\ ([0-9]+).*received\ ([0-9]+)/) {
	$bytes += $1 +$2;
    }
}

print "$bytes\n";
print $bytes/1024 ."\n";
print $bytes/1000 . "\n";
...
114166219
111490.448242188
114166.219

.. beh non si può dire che non mi sono dato da fare a scaricare .. ma sono 114 Mega ... facciamo 115. Richiamo il 190, controllo anche nel sito 190.it ...

Dopo un po' di sbattimenti vengo a scoprire che mi avevano addebitato il traffico fatto a Febbraio, mentre ero in treno, a navigare col browser wap del mio Nokia 3650 (fu quello il giorno in cui scoprii il motore wap di google)... Ma perché non l'avete detto?

Nel frattempo Fernando se ne era andato, io recuperai un modem ADSL e lo collegai al computer, ma la connessione era a tempo, l'ADSL, e a consumo, la GPRS. Per di più il lavoro per la wind era finito e dovevo lavorare ad un sito web: ora la connessione era necessaria e i soldi andavano scemando, dovevo controllare i consumi.

Mi venne in mente di far fare tutto in automatico di modo di poter sapere quanto stavo spendendo, non superare il limite dei 500 mega della vodafone, e limitare i costi della ADSL a tempo (che erano una vera mazzata): la GPRS sempre attaccata, quando avevo bisogno di scaricare avviavo l'adsl...

ppplogger versione 0.2

Decisi di usare questo programmino C che all'avvio della connessione inseriva in un db MySQL i dati della connessione, e alla fine segnava tutti i consumi (tempo e traffico). Il primo problema è che tale ppplogger è un programma che era solo nella mia fantasia, quindi dovevo scriverlo. Poi avevo bisogno di una qualche interfaccia per fare facilmente le interrogazioni, l'avrei scritta in php, anzi, l'ho scritta in php, ma poi mi accorsi che faceva schifo e non mi piaceva, quindi decisi di scriverla in GTK.

Il pppd

Mi capita di sapere che sui *nix ci sono le pagine di manuale, quindi leggendo quella del pppd vedo che posso impostare script di ip-up e di ip-down (tipicamente nella distribuzione c'è già e chiama tutti i programmi presenti nelle directories /etc/ppp/ip-up.d/ e /etc/ppp/ip-down.d/), e vedo anche che tali script vengono chiamante con delle variabili d'ambiente che riportano lo stato rispettivamente dell'avvio e delle terminazione del demone pppd. Beh, nulla di più banale.

Ok. Scrivo. Compilo. Le cose funzionano. L'interfaccia php fa schifo.

Il programma GTK ... do' un'occhiata al tutorial del sito gtk.org .. questa libreria fa un po' schifo a dir la verità ... ma forse sono un tipo difficile di natura. Provo libglade... non funziona .. segnali non connessi .. funzioni non trovate ... Ho speso un pomeriggio per capire che quei simpaticoni della libglade le cose le scrivono tra le righe: bisogna aggiungere -export-dynamic alle opzioni di compilazione: `pkg-config --cflags --libs libglade-2.0` non lo fa!

Potrei usare una libreria per collegarmi al db mysql, la libgda, ma ho già letto troppa documentazione, userò la libmysql come i comuni mortali idioti come me.

Le cose che devo fare sono semplici:

  • connessioni ADSL
    • tempo dei consumi da giorno-ora a giorno-ora
    • costo (moltiplicare per costo a minuto o a secondo)
  • connessioni GPRS
    • traffico da giorno-ora a giorno-ora
    • costo (moltiplicare per costo a 1024 bytes o a 1000 bytes)

Deve esserci una finestra, deve esserci un selettore di connessione (gprs, adsl .. una combo box), devono esserci 2 selettori di data-ora (datetime picker), deve esserci due textbox per i costo e due combo per decidere a che unità applicarlo, voglio un report totale e una column view per la lista delle connessioni nel periodo scelto, voglio un tasto per collegarsi al db, una finestra di dialogo per mettere i parametri di connessione, un tasto per aggiornare la richiesta. Cioè:

Ora ho un po' di log salvati (messages.?) vorrei parsarli e metter dentro le connessioni effettuate nel db. Lo faccio col perl che per il parsing va piuttosto bene.

Ok, il file reportcon.pl è in http://repository.smartango.com/parsing_log/

Ora il resto è alla rinfusa in http://repository.smartango.com/debian/

Ci sono i pacchetti debianizzati, sarebbe il caso di fare un repository debian.

Home pppd-logger