Hace un tiempo expliqué como enviar sms al movil con avisos de eventos registrados en el ordenador. Haciendo uso del servicio de envio de SMS de Twitter y mediante una serie de scripts, pero de un tiempo para esta parte el servicio falla más que una escopeta de feria (en realidad creo que el fallo es achacable a Movistar, ya que los SMS aparecen como enviados en Twitter pero nunca llegan ó llega 1 de cada 3) así es que he desarrollado un nuevo sistema de avisos via Jabber.

Gtalk en kopete

De esta manera, puedo programar facilmente cualquiera de las cámaras para que me avise mediante un mensaje a mi cuenta en Gtalk – Gmail de, por ejemplo: “Un gorrión se ha metido en la caja de arriba” ó “La cámara 5 esta fallando“.

Gtalk

Gtalk es el sistema de mensajería instantanea desarrollado por Google, de forma automática si dispones de una cuenta en Gmail dispones de la posiblidad de utilizar este servicio. Tan solo necesitas crear una nueva cuenta en Gmail que será la que uses para el envio de mensajes que serán recibidos por la cuenta que ya tienes.
Para el ejemplo, imaginaremos que tenemos una cuenta en Gmail del usuario: envia.mensajes@gmail.com y password: 1234 y la tuya propiamente dicha: yo.mismo@gmail.com

XMPP

Para crear el script en Perl tan solo necesitas tener instalada la librería Net::XMPP de Perl.

Ahora crea un archivo llamado gtalk.pl con el siguiente contenido (una modificación del original de Thus0 at free dot fr) :#!/usr/bin/perl -w
# script to send jabber message to Google Talk Instant Messaging
# using XMPP protocol and SASL PLAIN authentication.
# author: Thus0
# Copyright (c) 2005, Thus0 . All rights reserved.
# released under the terms of the GNU General Public License v2
use strict;
use Net::XMPP;
if($#ARGVConnect(
hostname => $hostname, port => $port,
componentname => $componentname,
connectiontype => $connectiontype, tls => $tls);
if (!(defined($status))) {
print "ERROR: Fallo en la conexion XMPP.\n";
print " ($!)\n";
exit(0);
}
# Change hostname
my $sid = $Connection->{SESSION}->{id};
$Connection->{STREAM}->{SIDS}->{$sid}->{hostname} = $componentname;
# Authenticate
my @result = $Connection->AuthSend(
username => $username, password => $password,
resource => $resource);
# Send message
$Connection->MessageSend(
to => "$to\@$componentname", body => $body,
resource => $resource);

Ahora lo guardais en vuestra carpeta ~/bin y lo haces ejecutable (chmod +x ~/bin/gtalk.pl). Para enviar un mensaje instantaneo desde envia.mensajes@gmail.com a yo.mismo@gmail.com basta con escribir en consola:gtalk.pl "Hola"
¿Facil no? Ahora podeis enteraros allá donde esteis de lo que ocurra en vuestro servidor.

Avisos en el escritorioAvisos en el escritorio