Cliente *libre* de mensajeria en la nube (part 2)

(…continuación de la parte 1)

Bueno, andabamos en las nubes con el tema de mensajería. Para recapitular, el objetivo era:

  • Conectividad 24/7
  • Acceso a todas nuestras redes de IM con el mínimo esfuerzo
  • Software libre por donde se pueda.

En la primera parte, hemos solucionado la papeleta mediante GNU Screen, Finch y una conexión SSH. La solución mola porque es completa, y no hace falta ningún software “raro” en los ordenadores cliente (solamente un cliente ssh). Para hacernos a la idea, quedaba tal que asín:

IM en la nube - Primera solución

Pero tiene algunos defectos:

  • Hay que usar exclusivamente el teclado (finch + screen + ratón es algo lioso de configurar, yo no lo he conseguido).
  • Los enlaces multilínea pueden no ser reconocidos en su totalidad por el emulador de terminal que usemos, así que en esos casos, toca copy-paste de los cachos de enlace que haya en cada línea.
  • Puede ser poco responsivo dado que, al fin y al cabo, screen+ssh es como un VNC de texto plano… y se nota cuando escasea el ancho de banda.

Así pues, intentaremos arreglar esos defectos:

Segunda solución: Bitlbee + Quassel IRC

Ahora vamos a ponernos en la piel de un Ubuntero típico de hoy en día: apesta andar con conexiones ssh, y más aún aprenderse que alt+n es para el siguiente tab de finch, o que ctrl+a,F redimensiona los contenidos del screen a nuestra terminal, etc…

Así pues, vamos a intentar tener un cliente de IM gráfico: en el que se pueda hacer copy-paste con el ratón, hacer clicks para hablar con las personas, y ese tipo de cosillas que se vienen haciendo desde hace 2 décadas. Por desgracia, no conozco ninguna solución tan elegante como la primera, por lo que esta vez va tocará instalar una aplicación en cada cliente que usemos, con un mínimo de configuración. Tampoco es mucho pedir, no? 🙂

Pasos a seguir:

  1. Instalar Quassel Core en el servidor (ponerlo en un bucle o demonio para que esté siempre rulando)
  2. Instalar Bitlbee en el servidor (ponerlo tb a lo demonio)
  3. Instalar al menos un cliente de Quassel para hacer la configuración inicial.

Pero vamos por partes.

Quassel IRC es un cliente de IRC que tiene una estructura cliente-servidor para la interfaz gráfica. Es decir, puedes tener o no tener una ventana (Quassel Client) abierta, y puede estar en el mismo o en otro ordenador que el servidor (Quassel Core). Lo mismo que hace MLDonkey y Amule, para entendernos.

Podeis pensar que vaya chorrada, que para eso ya hay otros protocolos estandard como VNC, o el propio SSH con X-Forwarding habilitado para usar unas Xorg remotas. El tema es que el protocolo de Quassel está especializado en… en sus cosas, por lo que es mucho más eficiente, más rapido, y a veces hasta te plancha la ropa. No hay color, vamos… si habeis usado VNC o X remotas, sabeis a qué me refiero.

Bitlbee, por otro lado, es una jartada de software que básicamente hace de pasarela desde diversas redes de IM hacia/desde IRC. Es decir, Bitlbee te permite interactuar con MSN, ICQ, Jabber, incluso Twitter y Facebook, mediante cualquier cliente de IRC. Se puede decir, por tanto, que es literalmente un servidor de IRC (uno muy curioso, sí xD).

Bitlbee utiliza un canal IRC especial, el #&bitlbee, dentro del cual mete como participantes a todos tus contactos de IM (del messenger, gtalk, etc). De esta forma, si coges un cliente IRC para conectarte a ese canal, la lista de participantes es realmente tu lista de contactos multiprotocolo. Obviamente, al usar IRC como pasarela, perdemos features (como los avatares del contacto, las razones de estar /away, etc). Basta tirar un /query a cualquier contacto para iniciar una conversación con esa persona.

Así que la idea es, usar un cliente de IRC (Quassel Client) en cada ordenador que queramos conectar a las redes IM, y conectarnos al servidor IRC Bitlbee que aúna todas ellas en un solo punto centralizado y nuboso.

Existe una posible pega: si nuestro build de Bitlbee no tiene libpurple como backend (sí, el mismo que usa Pidgin y Finch, entre otros), no hay soporte de pasarela para redes IRC, con lo que tenemos que configurar nuestras redes IRC en cada cliente/ordenador que usemos. La cosa quedaría tal que asín:

IM en la nube - Segunda solución

Si os atrevéis a montar todo este lío, los pasos un poco más detallados de configuración inicial son:

  1. Instalar como demonio Bitlbee en el servidor. Si no vamos a usar teléfonos moviles, podemos limitarlos a conexiones en 0.0.0.0 (conexiones del core de Quassel, que está en la misma máquina) para mayor seguridad.
  2. Instalar como demonio Quassel Core en el servidor.
  3. Instalar un Quassel client en un sobremesa o portatil y conectarlo al core.
  4. Una vez conectados al core, le añadimos el servidor IRC de bitlbee en “localhost” (el propio servidor nuboso), con puerto default. Adicionalmente, podemos configurarle nuestras redes de IRC habituales (Freenode, etc), a menos que las vayamos a meter en el propio Bitlbee (solo si tiene libpurple de backend, como ya he mencionado).
    Toda esta configuración se guardará en el core, así que no hay que hacerlo de nuevo nunca más.
  5. Al conectarnos al servidor IRC de bitlbee, se unirá al canal #&bitlbee automáticamente. Aquí es donde toqueteamos los settings de Bitlbee (todas las redes de IM, etc).
    Primero, nos registramos en Bitlbee con una contraseña, para poder guardar los settings: register <contraseña>
  6. Ahora añadimos las cuentas de IM a Bitblee con unos comandos especiales: account add <parámetros>. Para más información, aquí hay una guía rápida de Bitlbee.
  7. Una vez añadidas las cuentas IM, guardamos estos settings en Bitlbee con: save
  8. Y ya, si queremos, podemos configurar Quassel para que automáticamente ejecute un /identify <contraseña> al conectar, para que se autentique en Bitlbee y nos cargue toda la configuración del tirón (lo mismo que la autenticación de la mayoría de servers IRC, vamos).

Si a estas alturas seguís despiertos, entonces habéis configurado por fin vuestro molón cliente de IM en la nube! Congratulations! 😀

Y para terminar, así es como pinta la cosa una vez hecho todo:

quassel-n-bitlbee

Una vez escrito el post, veo que al final puede ser o parecer un poquillo más complicado que la primera solución, por lo que si tenéis alguna duda, y yo algo de tiempo libre, podéis preguntarme aki abajo (o en mi buzz, o donde queráis, con tal que sea un sitio público para que el resto del internet se pueda beneficiar de las explicaciones), y os intento echar un cable.

Hasta la próxima, frikomaníacos!

Tags: [es] | February 5th, 2011 |

One Response to “Cliente *libre* de mensajeria en la nube (part 2)”

  1. stenyak.com » Blog Archive » Cliente *libre* de mensajeria en la nube (part 1) Says:

    […] en la parte 2…) Tags: computing [es] | February 3rd, 2011 […]

Leave a Reply