featured image

El protocolo XMPP se caracteriza porque se establece sobre una conexión TCP, sobre la que se comienza un documento XML que van completando las dos partes, tanto el cliente como el servidor, de modo que al finalizar la conexión (de forma correcta), se obtiene un documento único de todo lo transmitido entre las dos partes.

Sobre esta dinámica, Google junto con la XMPP Standards Foundation, liberaron bajo licencia BSD en 2006 el XEP-0166 en el que se detalla el protocolo Jingle, como un conjunto de etiquetas que se agregan a ese documento XML que se establece en la comunicación XMPP, y sobre el que se puede establecer una llamada de VoIP.

Jingle se podría decir que primo de SIP, ya que comparte muchas cosas en común con este. En principio, ambos usan SDP (a través del XEP-0167) para la negociación de la llamada que se establece entre ambas partes, y ambos usan RTP (aunque la mayoría de protocolos VoIP usan RTP igualmente) para la transmisión del audio y/o vídeo.

Para el transporte de los DTMF se usa el XEP-0181, para la transferencia el XEP-0251 e incluso para transferir ficheros tenemos el XEP-0234. Hay muchos más estándares que completan el protocolo agregando cosas como encriptación, códecs o transportes especiales y viendo que estos estándares se asemejan a otros de SIP, parece que el futuro de Jingle estará ligado a SIP y sus evoluciones.

El protocolo lo implementan clientes como el Google Talk, Coccinella, Telepathy, Gajim, Jitsi, Phono, Pidgin, Psi, Yate Client, ... ; y muchos otros para plataformas Windows, GNU/Linux, BSD, Android, iOS, MacOS X, etc.

En el lado servidor, tenemos a Asterisk, Yate y FreeSwitch que soportan el protocolo, así como el paso de RTP para las llamadas, mientras que ejabberd, por ejemplo, solo maneja la señalización e intenta establecer la comunicación RTP de forma P2P (peer-to-peer, o punto a punto), aunque también se puede implementar un servidor de media-proxy para tratar con el RTP, al igual que se hace con Kamailio u OpenSIPS.

En conclusión, el protocolo XMPP ha demostrado que puede adaptarse lo suficiente como para cubrir las necesidades de comunicación unificando los medios junto con la información y aportando a la ecuación no solo la parte de comunicación textual que trae consigo XMPP, sino además la posibilidad de agregar transmisión de ficheros y comunicación por audio y vídeo.