
adslometer v0.1.1 GPL por Jess Diguez Fernndez

Prerequisitos
-------------

Para poder utilizar este script debers tener instalados los siguientes paquetes:

php5 			- Intrprete del lenguaje PHP
php5-cli 		- Aadido para poder utilizar los scripts PHP directamente desde consola
php5-mysql		- Aadido para poder escribir datos en la base de datos mysql (gracias a a Raul Viveros por el aviso :))
gnuplot 		- Programa para generar grficas
mysql-server-5.0	- Gestor de base de datos

Si utilizas una distribucin de linux basada en debian, ser tan sencillo como ejecutar como root lo siguiente:

apt-get install php5 php5-cli php5-mysql gnuplot mysql-server-5.0


Contenido
---------

LEEME.txt			- Este fichero
GPL-v3.0.txt			- Licencia GPL versin 3
a_velocidad.sql			- Script de generacin de la base de datos, incluye el nombre de la base de datos, un usuario y contrasea por defecto, se recomienda editar este fichero antes de continuar. Slo es necesario ejecutarlo la primera vez que se instala el programa
config.php			- Script con las variables de configuracin necesarias para que todo funcione correctamente
functions.php			- Librera de funciones tiles utilizada por los scripts
adslometer.php			- Script de consola que comprueba los datos actuales del router, los almacena en la base de datos MYSQL y genera una grfica con los datos de las ltimas 6 horas
dataview.php			- Script de consola que genera una tabla html con los datos de los ltimos tres das
test_router.php			- Script para probar la conectividad con el router, devuelve los valores leidos sin acceder a base de datos. Muy til para desarrollar nuevos scripts
test_sms.php			- Script para probar el envo de SMS
include/			- Carpeta donde se almacenarn los scripts especficos de cada router para obtener los datos del mismo, funcionan a modo de plugin
	SMC7908A-ISP.php	- Script para el router ADSL de Ya.com con soporte para VOIP
	Zyxel_HW660.php		- Script para el router ADSL de telefonica (mi router solo tiene soporte para ADSL normal, desconozco si funcionara con versiones con soporte para ADSL2+)
	Conceptronic_C54APRA2+.php	- Script para el router ADSL de Conceptronic. Soporta ADSL y ADSL2+, he comprobado que la pagina web es muy similar a algn DLINK, as que es posible que sea compatible con alguno

Todos los scripts estn debidamente comentados y creo que han quedado bastante legibles, puedes personalizarlos a tu gusto si as lo necesitas.

Actualizacin
-------------

No es necesario volver a lanzar el script SQL, slo hay que copiar los nuevos archivos machacando los antiguos.

Instalacin
-----------

Se debe extraer todo el contenido en una carpeta, preferiblemente bajo /usr/share o bajo /opt.
Para crear la base de datos, despus de haber ajustado el nombre de la base de datos, usuario y contrasea en el script 'a_velocidad.sql' que se incluye, slo tendremos que ejecutar esto:

mysql -u root -p < a_velocidad.sql

Despus de eso slo habr que escribir 'quit' para salir.

Estos scripts se pueden ejecutar desde un servidor http como apache, haciendo un alias a la carpeta donde se encuentra, pero se recomienda ejecutarlos peridicamente para evitar sobrecargar el servidor y el propio router. Se debern incluir dos nuevas tareas en cron:

crontab -e

# m h  dom mon dow   command
0,5,10,15,20,25,30,35,40,45,50,55       *       *       *       *       /usr/share/adslometer/adslometer.php 1>/var/www/adsl_speed.txt &
1,6,11,16,21,26,31,36,41,46,51,56       *       *       *       *       /usr/share/adslometer/dataview.php 1>/var/www/adsl_data.html &

Y listo, ya tenemos funcionando el adslometer. :)

Comentarios
-----------

Algunas cosas que mencionar:

	- En la base de datos se ha creado la tabla 'a_velocidad' que contiene los datos obtenidos cada 5 minutos del router. Como utilizar estos datos puede ser muy engorroso ya que hay muchos registros repetidos, se ha creado una vista de esta tabla, llamada 'velocidad' que contiene slo aquellos registros que son distintos.
	- El script lo he estado probando durante medio ao y ha funcionado correctamente, aun as se encuentra en estado beta.

Espero que os sea til. :)

