41
De SIP a XMPP y vice versa Saúl Ibarra Corretgé | AG Projects

De SIP a XMPP y vice versa

Embed Size (px)

DESCRIPTION

Slides (in Spanish) from the talk I gave at 4KConference in Colombia in 2012 about SIP and XMPP interoperability and how we built the SIP-XMPP gateway functionality into SylkServer.

Citation preview

Page 1: De SIP a XMPP y vice versa

De SIP a XMPP y vice versaSaúl Ibarra Corretgé | AG Projects

Page 2: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

¡Hola!

• Hola, soy Saúl

• @saghul

• The SIP Gentleman (TM)

• ¡Encantado de estar de vuelta en la 4K!

Page 3: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

• Infraestructura SIP para proveedores

• SIP Thor: plataforma SIP con escalabilidad horizontal (P2P).

• Proyectos Open Source

• Blink

• SIP SIMPLE SDK

• SylkServer

• MediaProxy

• OpenXCAP

• MSRPRelay

AG Projects

Page 4: De SIP a XMPP y vice versa

4

¿Cómo nos comunicamos?

Page 5: De SIP a XMPP y vice versa

5

1. Llega un email

Page 6: De SIP a XMPP y vice versa

6

2. Disponibilidad (presencia)

Page 7: De SIP a XMPP y vice versa

7

3. Chat

Page 8: De SIP a XMPP y vice versa

8

4. Audio / Video

Page 9: De SIP a XMPP y vice versa

9

5. Otros participantes

Page 10: De SIP a XMPP y vice versa

pero... ¿qué protocolo usamos?

Page 11: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

Entendiendo SIP y XMPP

• Protocolos para la negociación de sesiones, mensajería instantánea y presencia

• Mismas características, distinto diseño

Page 12: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

SIP

• Session Initiation Protocol

• Especificación (RFC 3261) en 2002

• Ideado para el establecimiento de sesiones multimedia, se utiliza principalmente para audio, video y conferencias

• Diseñado para fat clients y thin servers

Page 13: De SIP a XMPP y vice versa
Page 14: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

Chat con SIP

Page 15: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

Presencia con SIP

Page 16: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

XMPP

• eXtensible Messaging and Presence Protocol

• Creado por la comunidad Jabber en 1999, estandarizado en 2004 y actualizado en 2011

• Ideado para mensajería instantánea y presencia, con mucha extensibilidad

• Diseñado para fat servers y thin clients

Page 17: De SIP a XMPP y vice versa
Page 18: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

Chat con XMPP

Page 19: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

Presencia con XMPP

Page 20: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

Realtime Communications:Estado del Arte

• SIP utilizado para audio, video, conferencias y PSTN

• XMPP utilizado para chat y presencia

• Ambos coexistirán en los navegadores gracias a WebSocket y WebRTC

Page 21: De SIP a XMPP y vice versa
Page 22: De SIP a XMPP y vice versa

22

¿SIP vs XMPP?

Page 23: De SIP a XMPP y vice versa

23

SIP + XMPP

Page 24: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

Combinando SIP y XMPP

• Clientes dual-stack: CUSAX

• draft-ivov-xmpp-cusax

• Clientes con un solo stack: usar un gateway

• Tiene que ser transparente

Page 25: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

¡Un solo stack!

• Abstraer demasiado un protocolo puede acarrear problemas y/o limitaciones

• Configuración más sencilla

• SIP y XMPP son diferentes por diseño, ¿cómo los unificamos?

Page 26: De SIP a XMPP y vice versa
Page 27: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

SylkServer

• Servidor de aplicaciones SIP, Open Source

•ZeroConf

• Implementado utilizando SIP SIMPLE SDK

Page 28: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

SIP SIMPLE Client SDK

Page 29: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

SylkServer: Apliaciones

• Servidor de conferencias

• Gateway a XMPP

Page 30: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

SylkServer: Conferencias

• Audio en HD

• Chat

• Transferencia de ficheros

• Compartir escritorio

• Control (RFC 4575 y 4579)

Page 31: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

SylkServer: Gateway a XMPP

• Chat (SIP MESSAGE y MSRP)

• Chat en grupo (MUC)

• Presencia

Page 32: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

SylkServer: diseño del gateway XMPP

• SylkServer actua como un servidor XMPP

• Sólo soporta conexiones S2S

• Los usuarios están del lado SIP, los clientes XMPP no se pueden registrar en SylkServer

Page 33: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

Page 34: De SIP a XMPP y vice versa

Problemas

Page 35: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

Retos en la implementación

• Servidor XMPP vs componente XMPP

• Especificaciones incompletas y/o ambiguas

• Diferencia de conceptos

• Sesiones XMPP

• SIP PIDF vs presence stanza de XMPP

• Diferencia de características

• Conferencias SIP vs chat en grupo XMPP

Page 36: De SIP a XMPP y vice versa
Page 37: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

Futuro

• Los drafts de interoperabilidad SIP - XMPP van a ser retomados

• Roadmap para SylkServer

• Audio / video (Jingle)

• Transferencia de ficheros

Page 38: De SIP a XMPP y vice versa
Page 39: De SIP a XMPP y vice versa

Si vas en serio con un cliente SIP, construye también un servidor.

Page 40: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

Page 41: De SIP a XMPP y vice versa

AG ProjectsSIP Infrastructure Experts

@[email protected]

sip:[email protected]

BYE sip:audiencia@4KConf2012 SIP/2.0Via: SIP/2.0/UDP 192.168.99.23:49919;rport;branch=z9hG4bKPjDb30Dx0sH7aMMax-Forwards: 70From: "saghul" <sip:[email protected]>;tag=UCpGKVZbQQx7BUKTo: <sip:audiencia@4KConf2012>;tag=as59aef35cCall-ID: DEWDfu63OACwYeQk7MrhmRhRq.1cqqisCSeq: 10633 BYERoute: <sip:81.23.228.129;lr;ftag=UCpGKVZbQQx7BUKY;did=641.a8a9c553>User-Agent: BlinkContent-Length: 0

/dev/null