Este documento compara los protocolos SIP y XMPP para mensajería instantánea y presencia. SIP se utiliza tradicionalmente para sesiones de audio y video, mientras que XMPP se utiliza principalmente para mensajería instantánea. Ambos protocolos permiten establecer sesiones multimedia, pero difieren en su enfoque para mensajería, presencia e implementación de sesiones multimedia.
3. AG Projects
SIP Infrastructure Experts
Intro
• Hola, soy @saghul
• En VoIP desde el 2005
• Vamos a hablar de SIP y XMPP
Saturday, October 6, 2012
4. AG Projects
SIP Infrastructure Experts
AG Projects
• Infraestructura SIP • Blink
• SIP Thor: Plataforma • SIP SIMPLE SDK
SIP con escalabilidad
horizontal mediante • SylkServer
P2P
• MediaProxy
• Proyectos Open • OpenXCAP
Source
• MSRPRelay
Saturday, October 6, 2012
5. AG Projects
SIP Infrastructure Experts
Entendiendo SIP y XMPP
• Ambos son protocolos de señalización
• Nos permiten establecer sesiones
multimedia
• Mensajería Instantánea y Presencia
• Pero son MUY distintos
Saturday, October 6, 2012
6. AG Projects
SIP Infrastructure Experts
SIP
• Session Initiation Protocol - RFC 3261
• Creado para iniciar, mantener y terminar
sesiones multimedia
• Mayormente utilizado en sesiones de audio
y video, y conferencias
• Diseñado para que la inteligencia esté
en el User Agent
Saturday, October 6, 2012
7. AG Projects
SIP Infrastructure Experts
XMPP
• eXtensible Messaging and Presence
Protocol - RFC 6120, 6121
• Creado para mensajería y presencia
• Mayormente utilizado para IM
• Diseñado para que la inteligencia esté
en el servidor
Saturday, October 6, 2012
9. AG Projects
SIP Infrastructure Experts
IM con SIP
• Tipo SMS: SIP MESSAGE
• No hay relación entre mensajes
• Si el transporte es UDP, orden no
garantizado
• Utiliza el path de la señalización
Saturday, October 6, 2012
10. AG Projects
SIP Infrastructure Experts
IM con SIP
• Basado en sesiones: MSRP
• Igual que una llamada
• Conexión TCP entre los dispositivos
• Múltiples aplicaciones sobre MSRP
Saturday, October 6, 2012
11. AG Projects
SIP Infrastructure Experts
MSRP
• Message Session Relay Protocol - RFC4575
• Se negocia con SDP, igual que un stream de
audio
• Aplicaciones: chat, transferencia de
ficheros, compartir escritorio
• TLS es mandatory
• Usado en RCS
Saturday, October 6, 2012
12. AG Projects
SIP Infrastructure Experts
IM con SIP
MESSAGE sip:saul@ag-projects.com SIP/2.0
Via: SIP/2.0/UDP 192.168.99.53:58291;rport;branch=z9hG4bKPjLOuZqe0g8SRst9ip
Max-Forwards: 70
From: "Saúl" <sip:saghul@sip2sip.info>;tag=QPQ0E6QCFPv8Nx7F3uGPgkmoPvibIZDS
To: <sip:saul@ag-projects.com>
Call-ID: Us.Cphs4LMENWqaKvgR3MDup4Ak4eee2
CSeq: 50270 MESSAGE
User-Agent: Blink Pro 2.0.0 (MacOSX)
Content-Type: text/plain
Content-Length: 3
foo
Saturday, October 6, 2012
15. AG Projects
SIP Infrastructure Experts
IM con SIP
• SIP MESSAGE es más frágil
• Con MSRP es necesario aceptar la sesión
• Es posible usar early media
• ¿Routing basado en presencia?
Saturday, October 6, 2012
16. AG Projects
SIP Infrastructure Experts
IM con XMPP
• Distintos tipos de stanzas para IM
• El servidor inserta nuestra identidad
• Sin soporte para sesiones, son “implícitas”
Saturday, October 6, 2012
20. AG Projects
SIP Infrastructure Experts
Presencia con SIP
• Modelo PubSub, publicación - subscripción
• Iniciado por el usuario
• No se usa un modelo end to end
• Servidores Presence Agent
• Autorización: XCAP
Saturday, October 6, 2012
21. AG Projects
SIP Infrastructure Experts
XCAP
• XML Configuration Access Protocol -
RFC4825
• Almacena documentos XML, modificables
mediante HTTP
• Apliaciones
• Autorización
• Lista de contactos
• Estado offline
Saturday, October 6, 2012
24. AG Projects
SIP Infrastructure Experts
Presencia con XMPP
• Modelo Push - el servidor envía los datos a
todos
• Iniciado automáticamente por el servidor
• Sólo contempla presencia “básica”
• Presencia extendida
• Personal Eventing Protocol - XEP-0163
Saturday, October 6, 2012
28. AG Projects
SIP Infrastructure Experts
Audio y Video con SIP
• SIP y SDP para señalización, RTP para el
transporte del payload
• Encriptación: SRTP, ZRTP*
• Soporte para múltiples streams
• Soporte para distintas fuentes dentro de un
mismo stream
Saturday, October 6, 2012
29. AG Projects
SIP Infrastructure Experts
Audio y Vídeo con SIP
v=0
o=- 3557075781 3557075781 IN IP4 192.168.99.53
s=Blink Pro 2.0.0 (MacOSX)
c=IN IP4 192.168.99.53
t=0 0
m=audio 50542 RTP/AVP 103 102 9 0 8 101
a=rtcp:50544
a=rtpmap:103 speex/16000
a=rtpmap:102 speex/8000
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ice-ufrag:453af62f
a=ice-pwd:21f8ab2b
a=candidate:Sc0a86335 1 UDP 1694498815 62.131.6.55 50542 typ srflx raddr 192.168.99.53 rport 55428
a=candidate:Hc0a86335 1 UDP 2130706431 192.168.99.53 55428 typ host
a=candidate:Sc0a86335 2 UDP 1694498814 62.131.6.55 50544 typ srflx raddr 192.168.99.53 rport 52633
a=candidate:Hc0a86335 2 UDP 2130706430 192.168.99.53 52633 typ host
a=sendrecv
Saturday, October 6, 2012
30. AG Projects
SIP Infrastructure Experts
NAT
• RTP viaja sobre UDP
• La mayoría de los usuarios está detrás de
NAT
• Necesidad de usar media relays
• ¿O no?
Saturday, October 6, 2012
31. AG Projects
SIP Infrastructure Experts
ICE
• Interactive Connectivity Establishment -
RFC 5425
• Cada usuario presenta sus candidatos para
recibir RTP
• Se hacen pruebas usando paquetes STUN
• Se selecciona el candidato ganador
• ¡Audio P2P detrás de NAT!
• Ayuda en situaciones mixtas IPv4 / IPv6
Saturday, October 6, 2012
33. AG Projects
SIP Infrastructure Experts
Audio y Vídeo con XMPP
• Jingle, originalmente creado por Google
• Muy inspirado en SIP
• Stanzas de tipo IQ
• “Un SDP en XML”
• ICE como requisito
Saturday, October 6, 2012
38. AG Projects
SIP Infrastructure Experts
Conferencias con XMPP
• Multi User Chat (MUC): XEP-0045
• Audio y video
• Muji: XEP-0272
• Coin: XEP-0298
• Coin utiliza el payload del RFC 4575
Saturday, October 6, 2012
42. AG Projects
SIP Infrastructure Experts
Estado del Arte
• SIP utilizado para audio, video, conferencias
y emular la PSTN
• XMPP utilizado para mensajería, presencia y
Google Hangouts
• Ambos protocolos funcionarán en los
navegadores
• WebSocket + WebRTC
Saturday, October 6, 2012
43. AG Projects
SIP Infrastructure Experts
SIP y XMPP: ¿qué tienen en común?
• Misma tecnología para audio y video - RTP
• Misma tecnolgía de NAT traversal - ICE
• Payloads compatibles - CPIM
• Mecanismo PUBLISH - SUBSCRIBE
• usuario@dominio
Saturday, October 6, 2012
44. AG Projects
SIP Infrastructure Experts
Combinando SIP y XMPP
• Clientes dual stack
• CUSAX: draft-ivov-xmpp-cusax
• Clientes single stack
• Usar un gateway
• Un gateway transparente
Saturday, October 6, 2012
45. AG Projects
SIP Infrastructure Experts
Un solo stack
• SIP y XMPP fueron diseñados de manera
distinta, abstraernos de ellos puede traer
problemas
• Menos código, menos bugs
• Configuración más simple
Saturday, October 6, 2012
51. AG Projects
SIP Infrastructure Experts
SylkServer: Conferencias
• Audio en HD
• Chat con MSRP
• Información de participantes (RFC 4575)
• Control de conferencias (RFC 4579)
• draft-ietf-simple-chat
• Transferencia de ficheros
• Compartir escritorio
Saturday, October 6, 2012
52. AG Projects
SIP Infrastructure Experts
SylkServer: gateway XMPP
• Mensajería Instantánea
• SIP MESSAGE
• MSRP
• Presencia
• MUC
• Jingle
• Transferencia de ficheros
• Coin
Saturday, October 6, 2012
53. AG Projects
SIP Infrastructure Experts
Diseño del gateway XMPP
• SylkServer es el servidor XMPP
autoritativo del dominio
• Sólo soporta conexiones S2S
• Los clientes del dominio local usan SIP
• Routing en base a usuario@dominio (DNS
SRV)
Saturday, October 6, 2012
54. AG Projects
SIP Infrastructure Experts
Arquitectura del gateway XMPP
• El servidor no hace AAA
• Despliegue detrás de un proxy SIP
• Conexiones XMPP S2S con otros dominios
• Una única opción de configuración
necesaria como mínimo: el dominio
Saturday, October 6, 2012
58. AG Projects
SIP Infrastructure Experts
Retos en la implementación
• Servidor XMPP vs Componente XMPP
• Especificaciones incompletas / obsoletas
• Diferencia de conceptos
• ¿Sesiones XMPP?
• SIP PIDF vs Presencia en XMPP
• Conferencias en SIP vs XMPP MUC
• Jingle y Gingle
Saturday, October 6, 2012
59. AG Projects
SIP Infrastructure Experts
Futuro
• La IETF está considerando resucitar los
drafts de interoperabilidad SIP - XMPP
• Nuestro roadmap
• Jingle y Gingle
• Transferencia de ficheros
Saturday, October 6, 2012
61. AG Projects
SIP Infrastructure Experts
Problemas habituales
• NAT
• Tamaño de los paquetes SIP
• Escalabilidad
• Entornos hostiles a nivel de networking
Saturday, October 6, 2012
62. AG Projects
SIP Infrastructure Experts
NAT
• Fácilmente solucionable en el servidor
reescribiendo el SDP
• Pero rompe ICE
• OpenSIPS + MediaProxy
• Primera y única solución ICE-friendly
Saturday, October 6, 2012
64. AG Projects
SIP Infrastructure Experts
NAT y MSRP
• Uso de relays: MSRPRelay
• Alternative Connection Model (RFC 6135)
• Implementado en SIP SIMPLE SDK
Saturday, October 6, 2012
65. AG Projects
SIP Infrastructure Experts
Tamaño de los paquetes SIP
• ¡Cada vez son más grandes!
• Necesidad de un transporte fiable: TCP
• ¿Es TCP el transporte correcto?
• Facebook Messenger usa MQTT
• Si hay SIP ALGs: TLS
• Para que no husmeen
Saturday, October 6, 2012
66. AG Projects
SIP Infrastructure Experts
Escalabilidad
• ¿Quién balancea la carga del balanceador?
• Red distribuída de servidores: DHT
• Ejemplo: SIP2SIP.info usa SIPThor
Saturday, October 6, 2012
68. AG Projects
SIP Infrastructure Experts
Entornos hostiles a nivel de netwoking
• “Internet funciona perfectamente. En el
puerto 80.”
• SIP sobre TLS, en otro puerto
• RTP vía TURN / TCP
• RTP multiplexing
• WebRTC
Saturday, October 6, 2012