DEV Community

Fenix
Fenix

Posted on

Chat, voz y video XMPP autogestionado

Image description

XMPP / Jabber : más allá del e-mail y de la mensajería de texto, nuestras comunicaciones en tiempo real.

¿ Porqué XMPP - Jabber ?

XMPPlogo

Como hemos compartido ya en artículos anteriores, porque al contrario que la mayoría de protocolos de mensajería ( los usados por Whatsapp , Telegram, etc..), se define como estándar abierto y se basa en un enfoque de desarrollo y a aplicación de sistemas abiertos, pudiéndo operar entre organizaciones y Servidores en la Web de forma sencilla.

Mencionar que la popular herramienta de Videonferencia Jitsi usa XMPP para la función chat.

La XMPP Standards Foundation (XSF)

Hace unos meses, la XSF (que actúa como XMPP Standards Foundation ) hacia una llamada a la participación y a la acción para, colectivamente, superar las dificultades/mejoras de UX, UI, complejidades varias para el usuario al suscribirse... , federar esfuerzos recuperar la autonomía en nuestras comunicaciones de Mensajería Instantánea Chat.

NOTA : actualización : el proyecto Snikket aspira a resolver las cuestiones de usabilidad UX / UI mencionadas . De hecho, hablamos de este prometedor proyecto en este otro blogpost dedicado

Pues bien, la plataforma colaborativa y de sincronización / compartición de ficheros Nextcloud ahora ofrece la posibilidad de eso mismo: facilitar la experiencia del usuario (UX), lo que hasta ahora había sido nuestro el talón de Aquiles..., algo que epieza a quedar atrás cliente chat - JSXC.

Mencionar a continuación, para a quien le pueda servir, algunos recursos entorno a esta tecnología :

  • Servidor Chat
  • Clientes Chat
    • para usar en el PC como aplicación
    • para usar en tu navegador Web, cómodamente
    • para el teléfono

'Hola Prosody XMPP'! - Server

En nuestra experiencia, con un mínimo de conocimiento de gestión de servidores GNU + Linux resulta conveniente poner en marcha nuestro propio servidor Chat. De las soluciones disponibles optamos por la que nos parece la más sencilla,versátil y popular: Prosody XMPP | Server' (hay quien usa p.ej.: Ejabberd )

Requiere de pocos recursos hardware (como si te apeteciera cocinarte tu propio selfhosting en una Rasberry/ Orange /Banana Pi con batido de frutas supervitaminado)

Sin más acá dos útiles recursosy guías para este viaje cibernético :

Ahí tienes los entresijos claramente documentados, para que paso a paso puedas autogestionar tu servidor Chat, los DNS necesarios, certficados de cifrado SSL, etc...

Clientes Chat XMPP

Bien! Ahora, las aplicaciones cliente... para comunicarnos a través de nuestro nuevo servidor ya en marcha.

Hay muchos disponibles, elegimos 3 tipos diferentes según su uso :

  • uno para el navegador Web (pudíendose embeber en otras aplicaciones como Drupal o Wordpress) - Converse
  • para nuestro teléfono - Conversations
  • el Bot, el simpático asistente que no podía faltar a la fiesta

Hola 'Conversations' - Cliente Chat App

Ya en el zapatófono, Conversations, muy amigable cliente para Android Linux ... .Con él no echaremos de menos otras aplicaciones que pudiéramos venir usando hasta ahora.

'Hola ConverseJS' ! - Cliente Chat JavaScript

Bien! Ahora, los clientes... para comunicarnos a través de nu nuestro servidor
Siempre según en nuestra experiencia, con un mínimo de conocimiento de gestión de servidores GNU + Linux resulta conveniente poner en marcha nuestro propio servidor Chat. De las soluciones disponibles optamos por la que nos parece la más sencilla,versátil y popular: Prosody XMPP

'Hola Slixmpp' - Python chat bot

Por si faltaba algo... en escena aparece el Bot. El simpático asistente dará la bienvenida a nuestros visitantes, servirá opciones de menú... y lo que se se pueda imaginar. Slixmpp se ha escrito en Python. He visto a algunos bailar ASCiiArt ,y hasta contar chistes.
Es la base de algunos clientes tipo CLI o terminal/consola... que 'haberlos/haylos, como las meigas'.

Audio y Videoconferencia en XMPP / Jabber Audio ? Si.

Agregar unas notas sobre las últimas funcionalidades incorporadas a estas poderosas herramientas de comunicación (ver guía en los Recursos, más abajo).
En Librebits estamos usando Audio y Videoconferencia XMPP / Jabber para llamadas internacionales con nuestro clientes. En un primer prototipo, lo hacemos dentro de nuestra propia red privada virtual (VPN). La experiencia del usuario (UX), según ellos, es más que satistactoria : de calidad.

NOTA técnica: Para poder prescindir de la red VPN, nos faltaŕa incoporarar el servidor STUN (para gestión de los puertos de comunicaciones audiovisuales)

XMPP / Jabber + Drupal

En Librebits hemos integrado con éxito el cliente Converse dado que está escrito en JavaScript para funcionar desde tu navegador Web (pudiéndose embeber también Wordpress o tu JAMStack preferido, p.ej.) llamando sencillamente a un script.

XMPP / Jabber + Nextcloud

Entre otras muchas iniciativas, nos ha llamado la atención JSXC. O dicho de otro modo,

Sencillo cliente XMPP en JavaScript , que puede embeberse fácilmente en cualquier sitio Web, por ejemplo , en uno basado en Wordpress ... ¿ por qué no?

Proyecto Snikket

Hablaremos de este apasionante proyecto comunitario llamado Snikket (en fase Beta, de pruebas) en el que Librebits está empezando a participar en detalle, más adelante. Por ahora adelantar que estamos queriendo poner en práctica el 'State of the Art' en comunicaciones XMPP.
Con énfasis en la llamada experiencia del usuario ( UX ): sencilla alta/suscripción al servicio,etc.. . Dado que, respetuoso con la privacidad, XMPP no usa un número de teléfono como identificativo sino que se basa en un abierto esquema de identifcativos similar al del los servicios de correo-e, por ej. nombre@librebits.info )
Vamos animarnos (lo posibilidad está abierta a cualquiera) a hacer hosting y ofrecer dichos servicios, en un futuro.

Seguiremos informando de su evolución.

Epílogo

Esperemos que resulten útiles la experiencia y recursos compartidos entorno a las comunicaciones XMPP / Jabber.

Decíamos ... más allá del e-mail, volver a unir lo que nunca estuvo fragmentado, nuestras comunicaciones en tiempo real

Recursos :

Python Chat Bot :

XMPP

Top comments (0)