5222/TCP (Cliente a servidor)
5269/TCP (Servidor a servidor)
RFC 6120 (Principal)
RFC 6121 (Mensajería instantánea y presencia)
RFC 6122 (Formato de direcciones)
RFC 3922 (CPIM)
Extensible Messaging and Presence Protocol, más conocido como XMPP (Protocolo extensible de mensajería y comunicación de presencia) (anteriormente llamado Jabberprotocolo abierto y extensible basado en XML, originalmente ideado para mensajería instantánea.
), es unCon el protocolo XMPP queda establecida una plataforma para el intercambio de datos XML que puede ser usada en aplicaciones de mensajería instantánea. Las características en cuanto a adaptabilidad y sencillez del XML son heredadas de este modo por el protocolo XMPP.
A diferencia de los protocolos propietarios de intercambio de mensajes como ICQ, Y! y Windows Live Messenger, se encuentra documentado y se insta a utilizarlo en cualquier proyecto. Existen servidores y clientes libres que pueden ser usados sin coste alguno.
Tras varios años de su existencia, ha sido adoptado por empresas como Facebook, WhatsApp Messenger y Nimbuzz, entre otras, para su servicio de chat.
Google lo adoptó para su servicio de mensajería Google Talk, y en 2013 anunció que lo abandonaría en favor de su protocolo propietario Hangouts.
Jeremie Miller comenzó el proyecto Jabber en 1998. Su primera liberación de software importante sucedió en mayo de 2000. El principal producto del proyecto era jabberd, un servidor XMPP.
Este protocolo XMPP inicial creó las bases para el XMPP, publicado como RFC 3920. A menudo, ha sido considerado competidor de SIMPLE, basado en el protocolo SIP, como protocolo estándar de mensajería instantánea y notificación de presencia.
En agosto de 2005, Google introdujo Google Talk, una combinación de VoIP y sistemas de gestión de identidades que usa XMPP para sus funciones de mensajería instantánea y como base para su protocolo de señalización de transferencias y su sistema de voz. El lanzamiento inicial no incluía comunicaciones de servidor a servidor, pero el 17 de enero de 2006, fueron añadidas. Desde este año existió cerca de una media docena de implementaciones de servidores XMPP, escritos en diferentes lenguajes de programación.
Jabber Software Foundation fue renombrado como XMPP Standards Foundation el 15 de enero de 2007.
La red XMPP está basada en servidores, pero descentralizada; por diseño, no hay ningún servidor central, como sucede con servicios como AOL Instant Messenger o MSN Messenger. Sobre este punto, surge cierta confusión, puesto que existe un servidor XMPP público en "Jabber.org", al que están suscritos un gran número de usuarios, pero no hay que olvidar que cualquiera puede poner en marcha su propio servidor. El puerto estándar utilizado para XMPP es el 5222.
Cada usuario en la red XMPP tiene un único identificador (Jabber ID, normalmente abreviado como JID). Para evitar la necesidad de un servidor central con una lista exhaustiva de identificadores, el Jabber ID está estructurado como una dirección de correo electrónico, con un nombre de usuario y una dirección DNS para el servidor en el que reside el usuario, separado por un signo @. Un identificador Jabber sería algo como [email protected].
Como un usuario puede querer identificarse desde distintos lugares, el servidor permite al cliente especificar una cadena de referencia conocida como recurso, que identifica el cliente que está utilizando el usuario (por ejemplo: casa, trabajo, portátil, etc.). Esto será incluido en el JID añadiendo un carácter / seguido del nombre del recurso. Cada recurso debe tener especificada un valor numérico de prioridad. Por ejemplo el JID completo de la cuenta del trabajo del usuario sería: [email protected]/trabajo. Los mensajes de la forma [email protected] serán dirigidos al cliente con mayor prioridad, y los de la forma [email protected]/trabajo serán dirigidos al cliente del trabajo.
Los JID sin la parte del nombre de usuario también son válidos y se utilizan para enviar mensajes de sistema y control.
Supongamos que [email protected] desea chatear con [email protected]. Julieta y Romeo tienen sus respectivas cuentas en los servidores capulet.com y montague.net. Cuando Julieta escribe y envía su mensaje, entra en acción la siguiente secuencia de eventos:
Otra característica muy útil del protocolo XMPP son las pasarelas, que permiten a los usuarios el acceso a redes con otros protocolos de mensajería instantánea como MSN Messenger, ICQ u otros tipos de mensajería como SMS o E-mail. Este servicio no es proporcionado desde el cliente, sino desde el servidor mediante servicios de pasarela que proporcionan conectividad con alguna otra red. Cualquier usuario se puede registrar con alguna de estas pasarelas proporcionando sus datos de acceso a la nueva red como nombre de usuario y contraseña, y comunicarse con los usuarios de la nueva red. Esto significa que cualquier cliente XMPP puede ser usado para acceder cualquier red para la que haya una pasarela, sin necesidad de adaptar el cliente o de que tenga acceso directo a Internet.
Gran parte de los cortafuegos están configurados para permitir el paso del tráfico TCP dirigido al puerto usado por el protocolo HTTP, mientras que por lo general se bloquea el puerto utilizado por XMPP. Para solucionar este problema, XMPP utiliza HTTP para permitir el acceso a los usuarios que se encuentran tras cortafuegos. En las especificaciones originales, XMPP podía utilizar HTTP de dos formas:
Existen algunos servidores públicos como www.jabber80.com que escuchan en los puertos estándar HTTP y HTTPS, permitiendo la conexión mediante XMPP desde detrás de la mayoría de los cortafuegos.
Las pasarelas o transportes (del inglés transport) son un servicio ofrecido por diversos servidores que permiten la interoperabilidad de la red XMPP con otros protocolos de mensajería instantánea (como los empleados por Windows Live Messenger, Yahoo! Messenger, AOL Instant Messenger, ICQ, etcétera).Para ello es necesario registrarse a este servicio en el servidor XMPP que lo ofrezca. Esto no hace necesario disponer de una cuenta en este servidor, ya que muchos de ellos permiten la suscripción a cualquier JID.
Algunos clientes que implementan el protocolo XMPP son:
El grupo de trabajo IETF XMPP ha producido los siguientes documentos RFC:
RFC 3920, RFC 3921, RFC 3922, RFC 3923, RFC 4622, RFC 4854, RFC 4979
Las siguientes extensiones son de uso particularmente extendido:
Actualmente el protocolo XMPP está siendo ampliado para el manejo VoIP. El protocolo de señalización que se utilizará es Jingle, que está diseñado para ser compatible con el servicio de Google Talk.
Escribe un comentario o lo que quieras sobre Extensible Messaging and Presence Protocol (directo, no tienes que registrarte)
Comentarios
(de más nuevos a más antiguos)