martes, enero 31, 2006

Como instalar un Servidor de Televigilancia en su casa TOTALMENTE GRATIS...

Después de 500 años sin escribir en mi blog, volví.

Para "Auto-Celebrar" mi vuelta al blog, hoy escribiré algo que se me ocurrió y encuentro que es harto ingenioso (Gracias, gracias). Se trata de como montar un sistema de televigilancia barato en nuestras casas usando solamente cuatro elementos:

1) UN PC con USB
2) Un conexión a Internet Banda Ancha
3) Una Webcam común y corriente
4) Tiempo y paciencia.

Opcional
5) un micrófono.
6) una cuenta FTP privada en algún servidor
7) Una cuenta mail SMTP (consultar con el proveedor de servicios de Internet).
Esto último nos permitirá algo tan novedoso como enviar alertas a nuestro celular si es que hay movimiento en nuestra casa.

Bueno vamos al grano...

Primero, quiero decirles que hago esto y comparto este conocimiento magnífico que Dios me dió, (gracias de nuevo) para ayudar a todos aquellos que quieren saber que ocurre en su casa, en su pieza, o donde tengan el PC a toda hora y desde cualquier lugar del mundo. Opcionalmente mostraré como montar fácilmente un sensor de movimiento usando software solamente ;).
Uds dirán.. wow, que bien, pero al final se darán cuenta que es muy simple.
De todas maneras este tutorial está hecho considerando que la Webcam que tienen en su PC está con los drivers instalados y funcionando correctamente. No les voy a enseñar como instalar los drivers o si tienen problemas con la Webcam.

Bueno, como primer punto vamos a revisar que tipo de conexión a Internet tenemos. Lo ideal es que sea una conexión con IP pública y fija (que son muy escasas por lo demás), asi que lo mas probable es que tengan IP pública dinámica, es decir, que va cambiando cada cierto tiempo. ¿Como averiguarlo? Muy simple.. si la conexión es de tipo ADSL (Entel ADSL, Telefónica, Speedy, Surnet ADSL, etc) o tipo cable (VTR por ejemplo) entonces estamos 100 % seguros que las ip son dinámicas, es decir, cambian cada cierto tiempo. Lo cual es un inconveniente si queremos dirigir la conexión hacia nuestra casa.

I.- NO-IP

Bueno, si contamos con IP dinámica entonces vamos a necesitar un programa que nos permita tener un nombre fijo para identificar nuestro computador en Internet.(DNS, si señores) aunque tengamos una IP dinamica que cambie todos los dias. Este programa se llama NO-IP el cual en su versión gratis nos permite utilizar una amplia variedad de dominios y nos sirve perfectamente. Se puede descargar directamente desde Aquí
.
Lo descargamos y ANTES DE INSTALARLO vamos a hacer la operación de creación de nuestro DNS dinámico.
Para eso sigamos los siguientes pasos:

Ir a www.no-ip.com y hacer click en "Sign Up Now!
Ahora crearemos nuestra cuenta de acceso a NO-IP rellenando los datos que nos solicitan (Los campos en NEGRITA son obligatorios):
First Name: Nombre De cada uno, (NO ES EL USUARIO DE ACCESO A LA CUENTA, ya que la se utiliza el correo electronico como acceso al login)
Last Name: Apellido
Email: email valido, donde llegará la info de nuestra cuenta. (de preferencia que no sea hotmail)
Password: La contraseña que vamos a utilizar para nuestra cuenta no-ip (NO debe ser la misma contraseña del correo electrónico que pusimos anteriormente)
Confirm Password: Repetir la contraseña Anterior.
El resto de los datos los dejamos en blanco (los que no están en negrita) y en Country seleccionamos Chile (o el pais donde se encuentren ahora) de tal manera que el campo STATE quede seleccionada la opción: Not Applicable.
El último campo que debemos seleccionar es How did you hear about us? (Como supiste de nosotros?) Es que a estos gringos les gusta saber que sus productos son conocidos. Ahi seleccionamos la opción Friend/College. En realidad pueden seleccionar cualquiera, pero con esa está bien.

Finalmente activamos el ticket en la opción I have read and agree to the following terms of service: para indicar que estamos de acuerdo con la licencia aunque sea una mentira :)
Ahora, presionamos SIGN UP NOW!
Lo normal es que nos aparezca el mensaje: Confirmation email is on its way! para indicarnos que hicimos esta parte bien y ahora debemos revisar nuestro mail (el que pusimos en el registro) para activar la cuenta de no-ip.
Si aparece un mensaje contrario puede sigificar que no llenaron bien un campo, que la contraseña no la escribieron correctamente 2 veces o que el mail que pusieron ya existe en la base de datos de NO-IP (porque se puede utilizr solo 1 mail, ya que es la versión gratis).

Bueno ahora vamos a nuestra cuenta de correo y abrimos el que viene de NO-IP.com Activation. Si no ha llegado deberán esperar un momento por que aveces se retrasan los mails o revisar en la bandeja de correos no deseados (spam) y que muchasveces los filtros atajan estos mensajes y no los dejan en la bandeja de entrada.

Una vez que abrimos el mensaje buscamos donde dice:
"To activate your account please click the following URL:
http://www.no-ip.com/activate?lid=XXXXXXXXXXX" (Las X equivalen a alguna secuencia de números) y hacemos click para activar la cuenta, lo cual nos lleva automáticamente a la página de no-ip con el mensaje:
Account Confirmed!

Your account has been confirmed and is now ready for use. Please use the login box above to login to your account.

Perfecto, hasta ahora se ha hecho todo bien.
Entonces vamos a ingresar a crear (al fin) nuestro dominio para nuestra IP publica dinámica. Para eso vamos donde indica Email y Password y llenamos con los datos que incluimos al momento de registrarnos. Luego de eso hacer click en el boton LOGIN.

Una vez adentro de nuestra cuenta nos dirigimos al menú del lado izquierdo y buscamos Hosts/Redirects y presionamos el botón Add. Ahora necesitamos especificar nuestro subdominio y nuestro dominio (subdominio.dominio.com).
En este caso primero seleccionamos de la lista desplegable que sale no-ip.info el dominio que mas nos guste dentro del rango de "No-IP Free Domains". Para mi caso seleccionaré sytes.net ya que es más corto y facil de recordar y escribir.
Como tengo sytes.net como mi dominio ahora procedo a elegir mi subdominio, es decir lo que irá antes de sytes.net. Esto puede ser cualquier palabra que se les ocurra pero con la condicion de que no sean caracteres especiales (acentos y puntos, slashes y demases) ni una palabra que ya esté en uso evidentemente. Yo elegí la plabra "pcolomes" por lo tanto mi dominio completo será: "pcolomes.sytes.net". Ahora en donde dice Hostname: se escribe la palabra que elegimos como subdominio.

Luego en Host Type: se puede dejar tal como está, es decir, DNS Host (A).
El campo que nos interesa es el de IP Address. Por defecto la IP que aparezca va a ser la que se está usando actualmente en nuestra conexión, por lo tanto hay que dejarla tal como aparece, sin cambiarla. Automáticamente detecta nuestra IP.

Nota: Este sistema NO trabaja con NAT, es decir si tienen un router en su casa que tiene la IP pública de conexión a Internet y sus computadores tienen IPs falsas o privadas. Para que funcione en ese caso hay que hacer una redirección en el router (forwarding o Virtual Server) hacia el PC que queremos hacer funcionar con nuestro sistema. Quizás mas adelante me doy el tiempo de explicar como funcion eso, asi que por ahora deberían buscarse alguien que sepa trabajar con routers.

Teniendo estos datos listos los otros campos se dejan en blanco y presionamos Create Host al final de la página.
Si todo salió bien debería aparecer el siguiente mensaje:

"Add a Host

The host pcolomes.sytes.net (aqui se reemplaza por el suyo) resolving to 200.55.xxx.xxx (la IP con la cual están ahora) has successfuly been added to our system. New additions will take up to 5 minutes to become live on our DNS servers."
Afortunadamente, a diferencia de los servidores privados, este sistema se refrezca muy rapido, en 5 minutos ya tenemos nuestro dominio privado gratis funcionando.

Ahora vamos a la instalación del programa NO-IP que descargamos anteriormente.
Abrimos el archivo ducsetup.exe y seguimos los pasos a continuación:

1) Presionamos NEXT

2) Des-seleccionamos "View Readme" and "View Changes"

3) Presionamos Finish

4) Ingresamos nuestros datos de la cuenta de NO-IP (El correo que anotamos, y la password)


Si seguimos todos los pasos bien deberíamos tener nuestro sistema de Dominio propio funcionando (al fin!) y sin pagar un peso.
Para eso nos indica aqui el sistema con una carita si es que todo está ok.



Bueno, si queremos que cada vez que se prenda el computador se ejecute nuestro NO-IP y se sincronice de acuerdo a nuestra IP dinámica (que es lo recomendado de hacer) hacemos click en "Options" y seleccionamos la primera opción Run on Startup y luego OK. (Si tenemos XP o Windows2000 está la opción de ejecutar como servicio, pero no podemos utilizar las dos al mismo tiempo)



Está listo y resuelto el problema de nuestra IP. De ahora en adelante nuestro PC será valido en Internet con el nombre que eligieron para no-ip. El mio sera pcolomes.sytes.net.
Hay una forma bien fácil y simple de comprobar que funcion el dominio: Ir a Inicio - Ejecutar - CMD (Enter)- y en la pantalla negra ejecutar el comando: nslookup pcolomes.sytes.net (para mi caso). Debería devolver la misma IP que están usando ahora.

II.- WebcamXP

Este es el programa que nos dará todo lo necesario para poder hacer nuestro sistema de televigilancia. En este caso utilizaremos la versión 2.20 disponible en www.webcamXP.com
NO ES FACIL de usar, pero con un poco de práctica se puede entender muy rápido. Siempre es recomendable leer manuales o documentación antes de hechar mano a cosas que no se conocen.
Lo primero que haremos será descargarlo de Aqui
e instalarlo inmediatamente. A diferencia del NO-IP, éste software no necesita cuentas de usuario para funcionar.

Para instalar seguimos los siguientes pasos:
1) Abrir el archivo wxp_2.exe
2) en License Agreement ponemos "I Agree"
3) Welcome to the webcamXP 2 Setup Wizard presionamos "Next"
4) Choose Components - Dejamos todo como está, es decir seleccionado y apretamos "Next"
5) Destination Folder - Por defecto viene C:\Archivos de programa\webcamXP, esto está bien asi que "Next" nuevamente.
6) Mientras esperamos la instalación nos pregunta: "Create an icon on the Desktop" y presionamos "Yes" para crear un ícono en el escritorio.
7) Con la opción "Launch webcamXP2 now?" seleccionada, presionamos "Finish".

Esto abrirá automáticamente el programa pero se detendrá en un mensaje que dice: "enter reg. code" o "start trial". Aquí viene la parte maldadosa del asunto, pues nos presenta la opción de ingresar un código de registro para utilizar el software o usar un "trial" que es un periodo de prueba, que solamente dura 21 días.
Si seleccionamos Start Trial estaremos haciendo lo moralmente correcto ya que deberíamos pagar por este software (el valor es de alrededor de 80 mil pesos chilenos) lo que por supuesto yo no haré ya que no pienso gastar niun peso teniendo las herramientas como para justamente NO hacerlo. Todo queda a su juicio, si en las noches tienen pesadillas y no pueden dormir tranquilos es cosa de ustedes.

Yo ingresaré un código de registro que encontré "por ahi" en la red... por lo tanto selecciono la opción "enter reg. code".

En el cuadro de diálogo que se abre con "setup webcamXP to broadcast over internet..." debemos presionar el botón "detect WAN ip" una vez y luego seleccionar las 3 opciones debajo: "start HTTP internal server on startup", "detect WAN ip on startup" y "keep WAN ip updated". A continuación apretamos "Next.."

Luego en "testing communication..." presionamos "run test" para ver si funciona nuestra conexión desde Internet hacia nuestro PC. Lo normal es que diga algo como OK o Accepted.
El siguiente mensaje aparece cuando nos encontramos detrás de un ROUTER/Firewall que no permite nuestra salida directa a Internet. Ante lo cual deberemos consultar con un técnico capacitado en routers como solucionar nuestro problema:

" contacting http://200.55.xxx.xxx:8080 ...

failed... usually due to the following reasons :

1) router / modem is not forwarding the port used by webcamXP (default 8080 and 8090 TCP) to your internal ip (usually 192.168.xx.xx).

2) a firewall such as microsoft firewall is blocking the ports needed by webcamXP. either disable the firewall or create a rule to allow datas to be sent on those ports...

please check the link "router help..." / "firewall help..." to see how it can be solved.

in some rare cases (us robotics 9106 / zyxel 623 / etc...) even after doing this you still cannot see yourself at your WAN ip however the other users outside your LAN can.
so once you're done with the firewall config and ip forwarding and if you can't see yourself at that address you can still use http://localhost:8080 for you and ask a friend to test at your wan ip if.
.

Si todo ha salido bien, presionamos "Finish". Notarán que se abrió la ventana principal de WebcamXP y con rojo nos reclama algo ¿Que será? pues nos está pidiendo el código de registro para poder usar nuestro server.
En mi caso utilicé los siguientes datos pirateados, los cuales ustedes nunca deberían usar ya que esto es solamente un ejemplo educativo ;)
Your name: www.serials.ws
Your serial number: WXP-267514-544245
Presioné el botón "Register" y voilá! funcionó.
De todas maneras existen en el mundo miles de sitios donde buscar cracks y seriales.. como por ejemplo www.crackz.am y www.serials.ws. Deben tener cuidado con los link porno y mucho ojo con lo que bajan porque muchas veces son viruses.

Perfecto. Ya estamos casi listos con nuestro sistema... ahora solo falta afinar unos pocos detalles.

Vamos por parte, primero vamos a conectar nuestra Webcam con el software. Para ello hacemos click con el botón derecho sobre el dibujo del dragón que dice: "no source connected" y en el menú usamos: Connect - Video for Windows Sources - aqui seleccionamos el item que pertenezca a nuestra webcam. Haciendo este paso deberíamos ver inmediatamente una imagen en el recuadro. Pero notarán que está estática y no se mueve. Bueno, solamente haciendo click sobre el recuadro se activa el movimiento.

Si hemos llegado hasta aqui sin problemas significa que hemos hecho la parte mas critica sin problemas. Ahora buscamos el menú superior y seleccionamos "options" (entre "file" y "about"). En HTTP Client Type debemos asegurarnos que esté seleccionada la opción "Javascript Client". Esto dará mas rapidez a las imágenes enviadas por Internet.
Luego en el mismo menú opciones seleccionamos lo siguiente:
"start on windows startup" y "minimize on startup" para darle la orden al programa que se inicie junto con Windows y se minimice al arrancar para que no moleste.

Ahora procedemos al menu de servicio y nos vamos a la opción "Motion Detector". Esta opción es muy interesante ya que nos permite utilizar un detector de movimiento hecho únicamente por software. Los parámetros aqui son sencillos, solamente le decimos con que nivel de tolerancia al movimiento queremos activar nuestras "alertas". 20 % está bien para un movimiento normal, ahora si somos maniáticos y queremos capturar hasta las moscas que pasan por la camara subimos este nivel llegando a los 50 %. No es recomendable dejarlo en 90 o 100% ya que por defecto la webcam mueve los pixeles y esto nos volvería locos con tanta alarma.

Con solo presionar el botón "Start Detector" se activa el sensor de movimiento. Es recomendable presionar este botón cada vez que salimos de casa y apagarlo cuando volvemos, por razones obvias. Ahora, en el mismo menú "Motion Detector" al lado derecho vamos a "Alerts Configuration".

Aquí está la madre del cordero para nuestro sistema de alertas en caso de intrusos o visitas no deseadas. Tenemos las siguientes opciones con las cual el sistema actúa al existir movimiento en la webcam, que podemos entre-mezclar de acuerdo a nuestra preferencia.
- Save locally (.bmp) indica que podemos guardar las imagenes como archivos de foto
- Record movie: lo mismo de arriba pero en este caso se graba una pelicula de 30 segundos de duración
- Add to gallery: en caso de tener una galería en algún sitio Web se autoupload a dicho sitio web.
- run .exe file: Se ejecuta algun archivo .exe de nuestro sistema.
- Save for web (.jpg) se guardan las imagenes del movimiento en formato .jpg. Es mejor que BMP por que comprime las imagenes y las hace mas livianas para pasarlas por Internet
- send by mail: Envia la alerta a un correo electronico.
- upload by ftp: Automáticamente sube las imágenes a un servidor FTP remoto. Para eso debemos tener una cuenta con algun FTP.
- http post to url: envia una solicitud de tipo POST a una web (avanzado).

Lo recomendable es seleccionar "Save for web (.jpg)", "send by mail" y "upload by ftp"

Luego de seleccionar estas opciones continuamos con "email configuration":
Aqui es necesario tener una cuenta de tipo SMTP con algun servidor de correos como por ejemplo entelchile.net yahoo.com, surnet.cl, etc. Para eso necesitaremos los siguientes datos que se pueden conseguir llamando al soporte de Internet o buscando en Google, incluso los mas aventajados pueden configurar para que las alarmas lleguen directamente al celular (contratando la opción de recibir emails en el celular):
- Servidor SMTP, normalmente smtp.empresadeinternet.com
- Puerto SMTP, normalmente 25
- Usuario y contraseña del correo

Supongamos que nuestra cuenta de correos personal es hola@entelchile.net y mi contraseña sea 1234 entonces llenamos con los siguientes datos:

- sender email address: hola@entelchile.net
- smtp server login: hola
- smtp server port: 25
- dest email address: CORREO AL CUAL QUIERO QUE ME LLEGUEN LAS ALARMAS. En mi caso como quiero que lleguen a mi celular y la dirección mail de mi celular es minumero@entelpcs.cl entonces utilizo éste mail.
- smtp server address: smtp.entelchile.net
- smtp server password: 1234

Y listo. Seleccionando la opción "join picture to the mail" entonces la imagen de alarma se va como attach (adjunto) en el correo enviado, lo cual es util para celulares con MMS. Y "save password" guarda la contraseña de nuestro correo, lo cual es útil para no estar ingresandola manualmente cada vez que se enciende el PC.


Ya terminamos con el detector de movimiento y las alarmas. Ahora pasamos a la configuración de detalles. El siguiente paso sera presionar "Options" entre "Motion detector" y "Users Managers".

Por ahora el lado izquierdo no nos interesa mucho, entonces veamos donde dice Internal site design. En "site title" reemplazamos My webcamXP server por un titulo apropiado para nosotros, por ejemplo: Servidor de Televigilancia de pcolomes. Ahora sacamos los tickets de selección de las opciones "show chatbox" y "show 'powered by' logo".

Ahora cambiamos de pestaña y vamos a "Users Managers". Aqui configuraremos el acceso hacia nuestro servidor de vigilancia desde Internet, por lo cual es critico crear cuentas con contraseña (no queremos que alguien nos vea por error cierto?).
Lo primero es seleccionr la opción "Watch is password protected" que nos permite pedir contraseña cada vez que nos conectemos a revisar nuestra casa y a continuación click en "edit users".
Aquí agregamos los usuarios que querems que tengan acceso llenando los campos username (usuario), password (clave), email(solo como info) y nos aseguramos que esté seleccionada la opción "unlimited viewtime" para poder ver tranquilamente todo el tiempo que queramos. Una vez que llenemos estos campos presionamos el botón "add/update" y listo, creamos el primer usuario. Repetir este proceso por cada usuario nuevo que queramos ingresar a nuestro sistema.

Otra opción interesante es que éste sistema nos permite tener LIVE AUDIO, es decir escuchar en tiempo real el ruido que hay en nuestra casa, y para eso necesitamos solamente un microfono (por eso era opcional el punto 5 al inicio). Solamente presionando la opción "capture sound (1 source at time)" y seleccionando el dispositivo de audio de nuestro PC tendremos activada la opción de audio en vivo. (No hay que olvidarse de subir el volumen al microfono en las propiedades de audio de windows).

Ahora vamos a la última parte que es "web/broadcast".
Tenemos por un lado la configuración de nuestro servidor WEB donde mostraremos lo que ocurre en nuestras casas y la configuración del FTP en caso que hayamos seleccionado previamente "Upload by ftp" en el sistema de alarmas.

En internal HTTP server nos fijamos que estén los siguientes parámetros
a) Internet IP Address: Que sea la misma que muestra NO-IP
b) port: 8080
c) Verify wan IP each 60 minutes
d) Detect WAN on IP startup

Es importante ver si efectivamente el botón "STOP SERVER" está con el borde superior en color verde. Esto nos indica que está corriendo efectivamente nuestro servidor WEB. Si en sound broadcasting options seleccionamos "port" 8090 y presionamos el botón "broadcast sound" ya estaremos transmitiendo audio hacia Internet.

Ahora en la parte FTP upload debemos llenar estos datos SI ES QUE contamos con una cuenta ftp privada (no es recomendable una cuenta pública).
- FTP address: Dirección del servidor FTP
- FTP Port: 21
- FTP username: usuario del servidor FTP
- FTP password: contraseña del usuario del servidor FTP
- FTP directory: /
El resto de las opciones dejarlas en blanco.
Presionando el botón "auto FTP upload" dejamos lista la configuración para subir las imagenes o videos al servidor FTP remoto y tener una prueba si alguien, por ejemplo, nos roba el PC de la casa ;)

Teniendo todo esto configurado no queda mas que decir que ya está funcionando nuestro servidor de televigilancia total y absolutamente GRATIS.

Para verificar que funciona basta con poner ésta dirección en el Internet Explorer:
http://127.0.0.1:8080 y si pide usuario y contraseña entonces todo funcionó OK.De lo contrario deberán repasar uno a unos los pasos del WebcamXP.
Evidentemente ingresamos el usuario y password que creamos en "users manager".

Si esto funciona entonces para ver desde cualquier lado del mundo nuestra casa solamente debemos poner:

http://minombre.midominio.com:8080 es decir, en mi caso será http://pcolomes.sytes.net:8080 ya que ese fué el nombre que creé con el NO-IP.

Si por algún motivo no pueden ver desde Internet pero si desde 127.0.0.1 prueben deshabilitando algún Firewall o permitiendo el acceso a los puertos 8080 y 8090 TCP. Si tienen XP, prueben deshabilitando el servidor de seguridad de Windows (panel de control - firewall de windows, seleccionar DESACTIVADO)


Esto es todo amigos... cualquier duda haganmela llegar a pcolomes@gmail.com y veré si puedo contestarles.
Hasta la proxima.