SlideShare ist ein Scribd-Unternehmen logo
1 von 71
Downloaden Sie, um offline zu lesen
SIP y XMPP: amigos para siempre
                            Saúl Ibarra Corretgé | AG Projects
Saturday, October 6, 2012
¡Hola!
Saturday, October 6, 2012
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
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
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
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
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
Mensajería Instantánea
Saturday, October 6, 2012
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
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
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
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
AG Projects
SIP Infrastructure Experts




                             IM con SIP




Saturday, October 6, 2012
AG Projects
SIP Infrastructure Experts




                                                  IM con SIP
                             v=0
                             o=- 3557072827 3557072827 IN IP4 192.168.99.53
                             s=Blink Pro 2.0.0 (MacOSX)
                             c=IN IP4 192.168.99.53
                             t=0 0




                        {                                                                        }
                             m=message 2855 TCP/TLS/MSRP *
                             a=path:msrps://192.168.99.53:2855/2da6282242d37bc5909b;tcp
                             a=accept-types:message/cpim text/* application/im-iscomposing+xml
                             a=accept-wrapped-types:*
                             a=setup:active
                             m=audio 50002 RTP/AVP 103 102 9 0 8 101
                             a=rtcp:50003
                             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=sendrecv




Saturday, October 6, 2012
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
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
AG Projects
SIP Infrastructure Experts




                             IM con XMPP




Saturday, October 6, 2012
AG Projects
SIP Infrastructure Experts




                                          IM con XMPP


             <message from="saul@ag-projects.com/Psi+" type="chat" xml:lang="en" to="saghul@gmail.com/
             λ3DD1000D" id="aaf0a">
                 <body>foo</body>
                 <active xmlns="http://jabber.org/protocol/chatstates"/>
                 <request xmlns="urn:xmpp:receipts"/>
             </message>




Saturday, October 6, 2012
Presencia
Saturday, October 6, 2012
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
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
AG Projects
SIP Infrastructure Experts




                             Presencia con SIP




Saturday, October 6, 2012
AG Projects
SIP Infrastructure Experts




             <presence ...>
               <tuple id="SID-2af16065-6f4c-40a5-8bee-c38678776dec">
                 <status>
                   <basic>open</basic>
                   <agp-pidf:extended>available</agp-pidf:extended>
                 </status>
                 <c:display-name>saghul</c:display-name>
                 <c:map>Netherlands/Wageningen</c:map>
                 <c:icon>https://...</c:icon>
                 <agp-pidf:device-info id="2af16065-6f4c-40a5-8bee-c38678776dec">
                   <agp-pidf:description>hal</agp-pidf:description>
                   <agp-pidf:user-agent>Blink Pro 2.0.0 (MacOSX)</agp-pidf:user-agent>
                   <agp-pidf:time-offset>120</agp-pidf:time-offset>
                 </agp-pidf:device-info>
                 <caps:servcaps>
                   <caps:audio>true</caps:audio>
                   <caps:message>true</caps:message>
                   <caps:text>true</caps:text>
                   <agp-caps:file-transfer>true</agp-caps:file-transfer>
                   <agp-caps:screen-sharing>true</agp-caps:screen-sharing>
                 </caps:servcaps>
                 <rpid:user-input idle-threshold="600">active</rpid:user-input>
                 <contact>sip:saghul@test.sip2sip.info</contact>
                 <note>At work!</note>
                 <timestamp>2012-09-19T22:09:56.929088+02:00</timestamp>
               </tuple>
               ...
             </presence>



Saturday, October 6, 2012
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
AG Projects
SIP Infrastructure Experts




                             Presencia con XMPP




Saturday, October 6, 2012
AG Projects
SIP Infrastructure Experts




                                 Presencia con XMPP


          <presence>
              <status>ready to rock!</status>
              <priority>50</priority>
              <c xmlns="http://jabber.org/protocol/caps" node="http://psi-dev.googlecode.com/caps"
          ver="0.15" ext="ca cs cv e-time ep-notify-2 last-act mr sxe whiteboard"/>
              <x xmlns="vcard-temp:x:update">
                   <photo>6185d7579dab3063e71a09fcd0506a769c72af5e</photo>
              </x>
          </presence>




Saturday, October 6, 2012
Sesiones con RTP
Saturday, October 6, 2012
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
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
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
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
AG Projects
SIP Infrastructure Experts




                                                          ICE
                    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



Saturday, October 6, 2012
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
AG Projects
SIP Infrastructure Experts




                             Audio y Vídeo con XMPP
     <iq from='romeo@montague.lit/orchard' id='ph37a419' to='juliet@capulet.lit/balcony' type='set'>
       <jingle xmlns='urn:xmpp:jingle:1' action='session-initiate' initiator='romeo@montague.lit/
     orchard' sid='a73sjjvkla37jfea'>
         <content creator='initiator' name='voice'>
           <description xmlns='urn:xmpp:jingle:apps:rtp:1' media='audio'>
             <payload-type id='96' name='speex' clockrate='16000'/>
             <payload-type id='18' name='G729'/>
             <payload-type id='0' name='PCMU' />
           </description>
           <transport xmlns='urn:xmpp:jingle:transports:ice-udp:1 pwd='asd88fgpdd777uzjYhagZg'
               ufrag='8hhy'>
             <candidate component='1' foundation='1' generation='0' id='el0747fg11' ip='10.0.1.1'
               network='1' port='8998' priority='2130706431' protocol='udp' type='host'/>
             <candidate component='1' foundation='2' generation='0' id='y3s2b30v3r' ip='192.0.2.3'
               network='1' port='45664' priority='1694498815' protocol='udp' rel-addr='10.0.1.1'
               rel-port='8998' type='srflx'/>
           </transport>
         </content>
       </jingle>
     </iq>




Saturday, October 6, 2012
Conferencias
Saturday, October 6, 2012
AG Projects
SIP Infrastructure Experts




                                   Conferencias con SIP

                        • Lo habitual: aburridos mixers de RTP
                        • Lo interesante: RTP + chat + conference
                             control
                        • Información: RFC 4575
                        • Control: RFC 4579

Saturday, October 6, 2012
AG Projects
SIP Infrastructure Experts



     <conference-info ... entity="sip:9037396@conference.sip2sip.info" state="full">
       <conference-description>
       <display-text>Ad-hoc conference</display-text>
         <free-text>Hosted by SylkServer-2.0.0</free-text>
       </conference-description>
       <host-info>
         <web-page>http://sylkserver.com</web-page>
       </host-info>
       <conference-state>
         <user-count>1</user-count>
         <active>true</active>
       </conference-state>
       <users state="full">
         <user entity="sip:saghul@sip2sip.info" state="full">
           <display-text>Saúl</display-text>
           <endpoint entity="sip:lcwkhrsu@62.131.6.55:63047" state="full">
             <display-text>Saúll</display-text>
             <status>connected</status>
             <joining-info>
                <when>2012-09-19T23:26:18+02:00</when>
             </joining-info>
             <media id="186236108">
                <type>message</type>
             </media>
           </endpoint>
         </user>
       </users>
     </conference-info>



Saturday, October 6, 2012
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
AG Projects
SIP Infrastructure Experts




                             Conferencias con XMPP
                                <presence from='hag66@shakespeare.lit/pda'
                                    id='n13mt3l'
                                    to='coven@chat.shakespeare.lit/thirdwitch'>
                                  <x xmlns='http://jabber.org/protocol/muc'/>
                                </presence>




                             <presence from='coven@chat.shakespeare.lit/firstwitch'
                                 id='3DCB0401-D7CF-4E31-BE05-EDF8D057BFBD'
                                 to='hag66@shakespeare.lit/pda'>
                               <x xmlns='http://jabber.org/protocol/muc#user'>
                                 <item affiliation='owner' role='moderator'/>
                               </x>
                             </presence>

                             <presence from='coven@chat.shakespeare.lit/secondwitch'
                                 id='C2CD9EE3-8421-431E-854A-A2AD0CE2E23D'
                                 to='hag66@shakespeare.lit/pda'>
                               <x xmlns='http://jabber.org/protocol/muc#user'>
                                 <item affiliation='admin' role='moderator'/>
                               </x>
                             </presence>



Saturday, October 6, 2012
AG Projects
SIP Infrastructure Experts




                                   Conferencias con XMPP
      <iq from='romeo@montague.lit/orchard' id='zid615d9' to='juliet@capulet.lit/balcony' type='set'>
          <conference-info xmlns="urn:ietf:params:xml:ns:conference-info"
             entity="xmpp:romeo@monague.lit/orchard" state="full" version="1">

                <!-- CONFERENCE INFO -->
                <conference-description>
                  <subject>Ending a relationship</subject>
                </conference-description>

                <!-- CONFERENCE STATE -->
                <conference-state>
                  <user-count>3</user-count>
                </conference-state>

                <!-- USERS -->
                <users>
                  <user entity="xmpp:romeo@montague.lit" state="full">
                    <display-text>Romeo</display-text>

                        <!-- ENDPOINTS -->
                        <endpoint entity="xmpp:romeo@montague.lit/orchard">
                          <display-text>Romeo's smartphone</display-text>
                          <status>disconnected</status>
                          ...


Saturday, October 6, 2012
Construyendo un Gateway
Saturday, October 6, 2012
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
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
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
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
AG Projects
SIP Infrastructure Experts




                             SIP SIMPLE Client SDK




Saturday, October 6, 2012
AG Projects
SIP Infrastructure Experts




                             Blink




Saturday, October 6, 2012
AG Projects
SIP Infrastructure Experts




                                            SylkServer

                                                Conferencing
                                             High Definition Audio
                                              Instant Messaging
                                                 File Transfer
                                                   Presence




                             SIP Networks                           XMPP Networks

                                                 SylkServer




Saturday, October 6, 2012
AG Projects
SIP Infrastructure Experts




                                      SylkServer

                        • SIP Application Server
                        • Software Libre
                        • ZeroConf
                        • Implementado utilizando SIP SIMPLE Client
                             SDK



Saturday, October 6, 2012
AG Projects
SIP Infrastructure Experts




                             SylkServer: Arquitectura




Saturday, October 6, 2012
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
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
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
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
AG Projects
SIP Infrastructure Experts




                             Arquitectura del gateway XMPP




Saturday, October 6, 2012
AG Projects
SIP Infrastructure Experts




                             Gateway XMPP: IM




Saturday, October 6, 2012
AG Projects
SIP Infrastructure Experts




                             Gateway XMPP: Presencia




Saturday, October 6, 2012
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
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
Desplegando infraestructura SIP
Saturday, October 6, 2012
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
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
AG Projects
SIP Infrastructure Experts




                             Soporte ICE en MediaProxy




Saturday, October 6, 2012
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
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
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
AG Projects
SIP Infrastructure Experts




                             SIP + DHT




Saturday, October 6, 2012
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
AG Projects
SIP Infrastructure Experts




Saturday, October 6, 2012
AG Projects
SIP Infrastructure Experts

                     BYE sip:audience@tid SIP/2.0
                     Via: SIP/2.0/UDP 192.168.99.23:49919;rport;branch=z9hG4bKPjDb30Dx0sH7aM
                     Max-Forwards: 70
                     From: "saghul" <sip:saul@ag-projects.com>;tag=UCpGKVZbQQx7BUK
                     To: <sip:audience@tid>;tag=as59aef35c
                     Call-ID: DEWDfu63OACwYeQk7MrhmRhRq.1cqqis
                     CSeq: 10633 BYE
                     Route: <sip:81.23.228.129;lr;ftag=UCpGKVZbQQx7BUKY;did=641.a8a9c553>
                     User-Agent: Blink
                     Content-Length: 0


                                            @saghul


                                            saul@ag-projects.com


                                            sip:saul@ag-projects.com

Saturday, October 6, 2012
AG Projects
SIP Infrastructure Experts




                              Apéndice: enlaces de interés

                        • http://sipsimpleclient.com/
                        • http://sylkserver.com/
                        • http://icanblink.com/
                        • http://sylkserver.ag-projects.com/projects/
                             sylkserver/wiki/DesignXMPP



Saturday, October 6, 2012

Weitere ähnliche Inhalte

Was ist angesagt?

Extendiendo SIP con WebRTC - Saúl Ibarra | VoIP2DAY 2015
Extendiendo SIP con WebRTC - Saúl Ibarra | VoIP2DAY 2015Extendiendo SIP con WebRTC - Saúl Ibarra | VoIP2DAY 2015
Extendiendo SIP con WebRTC - Saúl Ibarra | VoIP2DAY 2015VOIP2DAY
 
Si sólo ves un webphone no entiendes WebRTC
Si sólo ves un webphone no entiendes WebRTCSi sólo ves un webphone no entiendes WebRTC
Si sólo ves un webphone no entiendes WebRTCPaloSanto Solutions
 
Presente y futuro del nuevo IVOZ Provider
Presente y futuro del nuevo IVOZ ProviderPresente y futuro del nuevo IVOZ Provider
Presente y futuro del nuevo IVOZ ProviderIrontec
 
VoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz providerVoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz providerIrontec
 
Irontec - Presentación de servicios de telefonía IP
Irontec - Presentación de servicios de telefonía IPIrontec - Presentación de servicios de telefonía IP
Irontec - Presentación de servicios de telefonía IPIrontec
 
Diapositivas skype
Diapositivas skypeDiapositivas skype
Diapositivas skypeyefry3030
 
10 años de VoIP: Conocer el pasado para pronosticar el futuro.
10 años de VoIP: Conocer el pasado para pronosticar el futuro.10 años de VoIP: Conocer el pasado para pronosticar el futuro.
10 años de VoIP: Conocer el pasado para pronosticar el futuro.Elio Rojano
 
Curso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y AsteriskCurso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y AsteriskIrontec
 
Sistema de videoconferencia basado en WebRTC con acceso a la PSTN
Sistema de videoconferencia basado en WebRTC con acceso a la PSTNSistema de videoconferencia basado en WebRTC con acceso a la PSTN
Sistema de videoconferencia basado en WebRTC con acceso a la PSTNPoncho Sandoval
 
Diseño de PBX multitenant basada en Asterisk
Diseño de PBX multitenant basada en AsteriskDiseño de PBX multitenant basada en Asterisk
Diseño de PBX multitenant basada en AsteriskJon Bonilla
 
CEUS by Iberian SharePoint Conference 2015 - Migra tu Lync a Skype for Business
CEUS by Iberian SharePoint Conference 2015 - Migra tu Lync a Skype for BusinessCEUS by Iberian SharePoint Conference 2015 - Migra tu Lync a Skype for Business
CEUS by Iberian SharePoint Conference 2015 - Migra tu Lync a Skype for BusinessPeter Diaz
 
Manejo de Medios en FreeSWITCH
Manejo de Medios en FreeSWITCHManejo de Medios en FreeSWITCH
Manejo de Medios en FreeSWITCHMoises Silva
 
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...Irontec
 
Introducción a la VoIP con Asterisk
Introducción a la VoIP con AsteriskIntroducción a la VoIP con Asterisk
Introducción a la VoIP con AsteriskElio Rojano
 

Was ist angesagt? (19)

Blink: SIP beyond VoIP
Blink: SIP beyond VoIPBlink: SIP beyond VoIP
Blink: SIP beyond VoIP
 
Extendiendo SIP con WebRTC - Saúl Ibarra | VoIP2DAY 2015
Extendiendo SIP con WebRTC - Saúl Ibarra | VoIP2DAY 2015Extendiendo SIP con WebRTC - Saúl Ibarra | VoIP2DAY 2015
Extendiendo SIP con WebRTC - Saúl Ibarra | VoIP2DAY 2015
 
Proyecto Open Pi Phone
Proyecto Open Pi PhoneProyecto Open Pi Phone
Proyecto Open Pi Phone
 
Si sólo ves un webphone no entiendes WebRTC
Si sólo ves un webphone no entiendes WebRTCSi sólo ves un webphone no entiendes WebRTC
Si sólo ves un webphone no entiendes WebRTC
 
JsSIP: SIP + WebRTC
JsSIP: SIP + WebRTCJsSIP: SIP + WebRTC
JsSIP: SIP + WebRTC
 
Presente y futuro del nuevo IVOZ Provider
Presente y futuro del nuevo IVOZ ProviderPresente y futuro del nuevo IVOZ Provider
Presente y futuro del nuevo IVOZ Provider
 
VoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz providerVoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz provider
 
Irontec - Presentación de servicios de telefonía IP
Irontec - Presentación de servicios de telefonía IPIrontec - Presentación de servicios de telefonía IP
Irontec - Presentación de servicios de telefonía IP
 
Diapositivas skype
Diapositivas skypeDiapositivas skype
Diapositivas skype
 
10 años de VoIP: Conocer el pasado para pronosticar el futuro.
10 años de VoIP: Conocer el pasado para pronosticar el futuro.10 años de VoIP: Conocer el pasado para pronosticar el futuro.
10 años de VoIP: Conocer el pasado para pronosticar el futuro.
 
Curso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y AsteriskCurso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y Asterisk
 
Sistema de videoconferencia basado en WebRTC con acceso a la PSTN
Sistema de videoconferencia basado en WebRTC con acceso a la PSTNSistema de videoconferencia basado en WebRTC con acceso a la PSTN
Sistema de videoconferencia basado en WebRTC con acceso a la PSTN
 
Diseño de PBX multitenant basada en Asterisk
Diseño de PBX multitenant basada en AsteriskDiseño de PBX multitenant basada en Asterisk
Diseño de PBX multitenant basada en Asterisk
 
CEUS by Iberian SharePoint Conference 2015 - Migra tu Lync a Skype for Business
CEUS by Iberian SharePoint Conference 2015 - Migra tu Lync a Skype for BusinessCEUS by Iberian SharePoint Conference 2015 - Migra tu Lync a Skype for Business
CEUS by Iberian SharePoint Conference 2015 - Migra tu Lync a Skype for Business
 
Manejo de Medios en FreeSWITCH
Manejo de Medios en FreeSWITCHManejo de Medios en FreeSWITCH
Manejo de Medios en FreeSWITCH
 
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
 
Introducción a la VoIP con Asterisk
Introducción a la VoIP con AsteriskIntroducción a la VoIP con Asterisk
Introducción a la VoIP con Asterisk
 
Grupo 6 skype expociòn
Grupo 6 skype expociònGrupo 6 skype expociòn
Grupo 6 skype expociòn
 
Grabación de llamadas IP
Grabación de llamadas IPGrabación de llamadas IP
Grabación de llamadas IP
 

Andere mochten auch

Videoconferencias: el santo grial de WebRTC
Videoconferencias: el santo grial de WebRTCVideoconferencias: el santo grial de WebRTC
Videoconferencias: el santo grial de WebRTCSaúl Ibarra Corretgé
 
Developing rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDKDeveloping rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDKSaúl Ibarra Corretgé
 
CDRTool: CDR mediation and rating engine for OpenSIPS
CDRTool: CDR mediation and rating engine for OpenSIPSCDRTool: CDR mediation and rating engine for OpenSIPS
CDRTool: CDR mediation and rating engine for OpenSIPSSaúl Ibarra Corretgé
 
Building an Open Source VoIP Hardware Phone
Building an Open Source VoIP Hardware PhoneBuilding an Open Source VoIP Hardware Phone
Building an Open Source VoIP Hardware PhoneSaúl Ibarra Corretgé
 
WebRTC enabling your OpenSIPS infrastructure
WebRTC enabling your OpenSIPS infrastructureWebRTC enabling your OpenSIPS infrastructure
WebRTC enabling your OpenSIPS infrastructureSaúl Ibarra Corretgé
 
libuv, NodeJS and everything in between
libuv, NodeJS and everything in betweenlibuv, NodeJS and everything in between
libuv, NodeJS and everything in betweenSaúl Ibarra Corretgé
 

Andere mochten auch (19)

Proyecto OP^2: Open Pi Phone
Proyecto OP^2: Open Pi PhoneProyecto OP^2: Open Pi Phone
Proyecto OP^2: Open Pi Phone
 
OpenSIPS Workshop
OpenSIPS WorkshopOpenSIPS Workshop
OpenSIPS Workshop
 
Videoconferencias: el santo grial de WebRTC
Videoconferencias: el santo grial de WebRTCVideoconferencias: el santo grial de WebRTC
Videoconferencias: el santo grial de WebRTC
 
SIP2SIP: SIP gratis para las masas
SIP2SIP: SIP gratis para las masasSIP2SIP: SIP gratis para las masas
SIP2SIP: SIP gratis para las masas
 
SIP is hard, let's go shopping!
SIP is hard, let's go shopping!SIP is hard, let's go shopping!
SIP is hard, let's go shopping!
 
Rethinking the PBX
Rethinking the PBXRethinking the PBX
Rethinking the PBX
 
Blink: voice is not enough
Blink: voice is not enoughBlink: voice is not enough
Blink: voice is not enough
 
SIP Conferencing Reloaded
SIP Conferencing ReloadedSIP Conferencing Reloaded
SIP Conferencing Reloaded
 
SIP Beyond VoIP
SIP Beyond VoIPSIP Beyond VoIP
SIP Beyond VoIP
 
Developing rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDKDeveloping rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDK
 
CDRTool: CDR mediation and rating engine for OpenSIPS
CDRTool: CDR mediation and rating engine for OpenSIPSCDRTool: CDR mediation and rating engine for OpenSIPS
CDRTool: CDR mediation and rating engine for OpenSIPS
 
Planning libuv v2
Planning libuv v2Planning libuv v2
Planning libuv v2
 
Trust No One
Trust No OneTrust No One
Trust No One
 
The Future of the PBX
The Future of the PBXThe Future of the PBX
The Future of the PBX
 
Python, WebRTC and You (v2)
Python, WebRTC and You (v2)Python, WebRTC and You (v2)
Python, WebRTC and You (v2)
 
Building an Open Source VoIP Hardware Phone
Building an Open Source VoIP Hardware PhoneBuilding an Open Source VoIP Hardware Phone
Building an Open Source VoIP Hardware Phone
 
WebRTC enabling your OpenSIPS infrastructure
WebRTC enabling your OpenSIPS infrastructureWebRTC enabling your OpenSIPS infrastructure
WebRTC enabling your OpenSIPS infrastructure
 
libuv, NodeJS and everything in between
libuv, NodeJS and everything in betweenlibuv, NodeJS and everything in between
libuv, NodeJS and everything in between
 
RadioVozIP
RadioVozIPRadioVozIP
RadioVozIP
 

Ähnlich wie SIP y XMPP: amigos para siempre

Qué hace falta para construir un skype
Qué hace falta para construir un skypeQué hace falta para construir un skype
Qué hace falta para construir un skypeOpenDireito
 
Blink: llevando SIP más allá de la VoIP
Blink: llevando SIP más allá de la VoIPBlink: llevando SIP más allá de la VoIP
Blink: llevando SIP más allá de la VoIPPaloSanto Solutions
 
2014 saul ibarra proyecto op2
2014 saul ibarra proyecto op22014 saul ibarra proyecto op2
2014 saul ibarra proyecto op2VOIP2DAY
 
Askozia y snom presentan su solución integrada
Askozia y snom presentan su solución integradaAskozia y snom presentan su solución integrada
Askozia y snom presentan su solución integradaAskozia
 
Configuración básica asterisk sixbell - v2.0
Configuración básica asterisk   sixbell - v2.0Configuración básica asterisk   sixbell - v2.0
Configuración básica asterisk sixbell - v2.0Sebastian Cisternas Arenas
 
Curso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 02: SIPCurso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 02: SIPIrontec
 
Introduccion telefonia ip
Introduccion telefonia ipIntroduccion telefonia ip
Introduccion telefonia ipmagio29
 
[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIP
[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIP[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIP
[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIPIñaki Baz Castillo
 
Ninabanda_Jamil_Códecs_para_telefonía_IP.pdf
Ninabanda_Jamil_Códecs_para_telefonía_IP.pdfNinabanda_Jamil_Códecs_para_telefonía_IP.pdf
Ninabanda_Jamil_Códecs_para_telefonía_IP.pdfJamilNina1
 
ORIGIN STACK EL APLIANCE DE VIRTUALIZACIÓN ENTERPRISE
ORIGIN STACK EL APLIANCE DE VIRTUALIZACIÓN ENTERPRISE ORIGIN STACK EL APLIANCE DE VIRTUALIZACIÓN ENTERPRISE
ORIGIN STACK EL APLIANCE DE VIRTUALIZACIÓN ENTERPRISE Telecomputer
 
voip2day 2012 - Incremente sus opciones con gateways vega de sangoma by ernes...
voip2day 2012 - Incremente sus opciones con gateways vega de sangoma by ernes...voip2day 2012 - Incremente sus opciones con gateways vega de sangoma by ernes...
voip2day 2012 - Incremente sus opciones con gateways vega de sangoma by ernes...VOIP2DAY
 
Seguridad en VoIP - Hackelarre
Seguridad en VoIP - HackelarreSeguridad en VoIP - Hackelarre
Seguridad en VoIP - HackelarrePablo Garaizar
 

Ähnlich wie SIP y XMPP: amigos para siempre (20)

Qué hace falta para construir un skype
Qué hace falta para construir un skypeQué hace falta para construir un skype
Qué hace falta para construir un skype
 
Blink: llevando SIP más allá de la VoIP
Blink: llevando SIP más allá de la VoIPBlink: llevando SIP más allá de la VoIP
Blink: llevando SIP más allá de la VoIP
 
2014 saul ibarra proyecto op2
2014 saul ibarra proyecto op22014 saul ibarra proyecto op2
2014 saul ibarra proyecto op2
 
Expo seguridad
Expo seguridadExpo seguridad
Expo seguridad
 
Askozia y snom presentan su solución integrada
Askozia y snom presentan su solución integradaAskozia y snom presentan su solución integrada
Askozia y snom presentan su solución integrada
 
Lecture about XMPP
Lecture about XMPPLecture about XMPP
Lecture about XMPP
 
Configuración básica asterisk sixbell - v2.0
Configuración básica asterisk   sixbell - v2.0Configuración básica asterisk   sixbell - v2.0
Configuración básica asterisk sixbell - v2.0
 
Curso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 02: SIPCurso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 02: SIP
 
Introduccion telefonia ip
Introduccion telefonia ipIntroduccion telefonia ip
Introduccion telefonia ip
 
Presentacion Voip
Presentacion VoipPresentacion Voip
Presentacion Voip
 
[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIP
[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIP[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIP
[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIP
 
Introducción a Asterisk
Introducción a AsteriskIntroducción a Asterisk
Introducción a Asterisk
 
Ninabanda_Jamil_Códecs_para_telefonía_IP.pdf
Ninabanda_Jamil_Códecs_para_telefonía_IP.pdfNinabanda_Jamil_Códecs_para_telefonía_IP.pdf
Ninabanda_Jamil_Códecs_para_telefonía_IP.pdf
 
ORIGIN STACK EL APLIANCE DE VIRTUALIZACIÓN ENTERPRISE
ORIGIN STACK EL APLIANCE DE VIRTUALIZACIÓN ENTERPRISE ORIGIN STACK EL APLIANCE DE VIRTUALIZACIÓN ENTERPRISE
ORIGIN STACK EL APLIANCE DE VIRTUALIZACIÓN ENTERPRISE
 
voip2day 2012 - Incremente sus opciones con gateways vega de sangoma by ernes...
voip2day 2012 - Incremente sus opciones con gateways vega de sangoma by ernes...voip2day 2012 - Incremente sus opciones con gateways vega de sangoma by ernes...
voip2day 2012 - Incremente sus opciones con gateways vega de sangoma by ernes...
 
Seguridad en VoIP - Hackelarre
Seguridad en VoIP - HackelarreSeguridad en VoIP - Hackelarre
Seguridad en VoIP - Hackelarre
 
Skype
SkypeSkype
Skype
 
Seguridad en VoIP
Seguridad en VoIPSeguridad en VoIP
Seguridad en VoIP
 
La vo ip
La vo ipLa vo ip
La vo ip
 
Asterix: simplemente...
Asterix: simplemente...Asterix: simplemente...
Asterix: simplemente...
 

Mehr von Saúl Ibarra Corretgé

Challenges running Jitsi Meet at scale during the pandemic
Challenges running Jitsi Meet at scale during the pandemicChallenges running Jitsi Meet at scale during the pandemic
Challenges running Jitsi Meet at scale during the pandemicSaúl Ibarra Corretgé
 
The Road to End-to-End Encryption in Jitsi Meet
The Road to End-to-End Encryption in Jitsi MeetThe Road to End-to-End Encryption in Jitsi Meet
The Road to End-to-End Encryption in Jitsi MeetSaúl Ibarra Corretgé
 
Jitsi Meet: our tale of blood, sweat, tears and love
Jitsi Meet: our tale of blood, sweat, tears and loveJitsi Meet: our tale of blood, sweat, tears and love
Jitsi Meet: our tale of blood, sweat, tears and loveSaúl Ibarra Corretgé
 
Jitsi Meet: Video conferencing for the privacy minded
Jitsi Meet: Video conferencing for the privacy mindedJitsi Meet: Video conferencing for the privacy minded
Jitsi Meet: Video conferencing for the privacy mindedSaúl Ibarra Corretgé
 
Get a room! Spot: the ultimate physical meeting room experience
Get a room! Spot: the ultimate physical meeting room experienceGet a room! Spot: the ultimate physical meeting room experience
Get a room! Spot: the ultimate physical meeting room experienceSaúl Ibarra Corretgé
 
Going Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCGoing Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCSaúl Ibarra Corretgé
 
Going Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCGoing Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCSaúl Ibarra Corretgé
 
Jitsi: state-of-the-art video conferencing you can self-host
Jitsi: state-of-the-art video conferencing you can self-hostJitsi: state-of-the-art video conferencing you can self-host
Jitsi: state-of-the-art video conferencing you can self-hostSaúl Ibarra Corretgé
 
WebRTC: El epicentro de la videoconferencia y IoT
WebRTC: El epicentro de la videoconferencia y IoTWebRTC: El epicentro de la videoconferencia y IoT
WebRTC: El epicentro de la videoconferencia y IoTSaúl Ibarra Corretgé
 
libuv: cross platform asynchronous i/o
libuv: cross platform asynchronous i/olibuv: cross platform asynchronous i/o
libuv: cross platform asynchronous i/oSaúl Ibarra Corretgé
 
SylkServer: State of the art RTC application server
SylkServer: State of the art RTC application serverSylkServer: State of the art RTC application server
SylkServer: State of the art RTC application serverSaúl Ibarra Corretgé
 

Mehr von Saúl Ibarra Corretgé (19)

Challenges running Jitsi Meet at scale during the pandemic
Challenges running Jitsi Meet at scale during the pandemicChallenges running Jitsi Meet at scale during the pandemic
Challenges running Jitsi Meet at scale during the pandemic
 
The Road to End-to-End Encryption in Jitsi Meet
The Road to End-to-End Encryption in Jitsi MeetThe Road to End-to-End Encryption in Jitsi Meet
The Road to End-to-End Encryption in Jitsi Meet
 
Jitsi: State of the Union 2020
Jitsi: State of the Union 2020Jitsi: State of the Union 2020
Jitsi: State of the Union 2020
 
Jitsi Meet: our tale of blood, sweat, tears and love
Jitsi Meet: our tale of blood, sweat, tears and loveJitsi Meet: our tale of blood, sweat, tears and love
Jitsi Meet: our tale of blood, sweat, tears and love
 
Jitsi Meet: Video conferencing for the privacy minded
Jitsi Meet: Video conferencing for the privacy mindedJitsi Meet: Video conferencing for the privacy minded
Jitsi Meet: Video conferencing for the privacy minded
 
Jitsi - Estado de la unión 2019
Jitsi - Estado de la unión 2019Jitsi - Estado de la unión 2019
Jitsi - Estado de la unión 2019
 
Get a room! Spot: the ultimate physical meeting room experience
Get a room! Spot: the ultimate physical meeting room experienceGet a room! Spot: the ultimate physical meeting room experience
Get a room! Spot: the ultimate physical meeting room experience
 
Going Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCGoing Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTC
 
Going Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCGoing Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTC
 
Jitsi: Estado de la Unión (2018)
Jitsi: Estado de la Unión (2018)Jitsi: Estado de la Unión (2018)
Jitsi: Estado de la Unión (2018)
 
Jitsi: state-of-the-art video conferencing you can self-host
Jitsi: state-of-the-art video conferencing you can self-hostJitsi: state-of-the-art video conferencing you can self-host
Jitsi: state-of-the-art video conferencing you can self-host
 
WebRTC: El epicentro de la videoconferencia y IoT
WebRTC: El epicentro de la videoconferencia y IoTWebRTC: El epicentro de la videoconferencia y IoT
WebRTC: El epicentro de la videoconferencia y IoT
 
Jitsi: Open Source Video Conferencing
Jitsi: Open Source Video ConferencingJitsi: Open Source Video Conferencing
Jitsi: Open Source Video Conferencing
 
Jitsi: State of the Union
Jitsi: State of the UnionJitsi: State of the Union
Jitsi: State of the Union
 
libuv: cross platform asynchronous i/o
libuv: cross platform asynchronous i/olibuv: cross platform asynchronous i/o
libuv: cross platform asynchronous i/o
 
SylkServer: State of the art RTC application server
SylkServer: State of the art RTC application serverSylkServer: State of the art RTC application server
SylkServer: State of the art RTC application server
 
A deep dive into libuv
A deep dive into libuvA deep dive into libuv
A deep dive into libuv
 
From SIP to WebRTC and vice versa
From SIP to WebRTC and vice versaFrom SIP to WebRTC and vice versa
From SIP to WebRTC and vice versa
 
Python, WebRTC and You
Python, WebRTC and YouPython, WebRTC and You
Python, WebRTC and You
 

SIP y XMPP: amigos para siempre

  • 1. SIP y XMPP: amigos para siempre Saúl Ibarra Corretgé | AG Projects Saturday, October 6, 2012
  • 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
  • 13. AG Projects SIP Infrastructure Experts IM con SIP Saturday, October 6, 2012
  • 14. AG Projects SIP Infrastructure Experts IM con SIP v=0 o=- 3557072827 3557072827 IN IP4 192.168.99.53 s=Blink Pro 2.0.0 (MacOSX) c=IN IP4 192.168.99.53 t=0 0 { } m=message 2855 TCP/TLS/MSRP * a=path:msrps://192.168.99.53:2855/2da6282242d37bc5909b;tcp a=accept-types:message/cpim text/* application/im-iscomposing+xml a=accept-wrapped-types:* a=setup:active m=audio 50002 RTP/AVP 103 102 9 0 8 101 a=rtcp:50003 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=sendrecv 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
  • 17. AG Projects SIP Infrastructure Experts IM con XMPP Saturday, October 6, 2012
  • 18. AG Projects SIP Infrastructure Experts IM con XMPP <message from="saul@ag-projects.com/Psi+" type="chat" xml:lang="en" to="saghul@gmail.com/ λ3DD1000D" id="aaf0a"> <body>foo</body> <active xmlns="http://jabber.org/protocol/chatstates"/> <request xmlns="urn:xmpp:receipts"/> </message> 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
  • 22. AG Projects SIP Infrastructure Experts Presencia con SIP Saturday, October 6, 2012
  • 23. AG Projects SIP Infrastructure Experts <presence ...> <tuple id="SID-2af16065-6f4c-40a5-8bee-c38678776dec"> <status> <basic>open</basic> <agp-pidf:extended>available</agp-pidf:extended> </status> <c:display-name>saghul</c:display-name> <c:map>Netherlands/Wageningen</c:map> <c:icon>https://...</c:icon> <agp-pidf:device-info id="2af16065-6f4c-40a5-8bee-c38678776dec"> <agp-pidf:description>hal</agp-pidf:description> <agp-pidf:user-agent>Blink Pro 2.0.0 (MacOSX)</agp-pidf:user-agent> <agp-pidf:time-offset>120</agp-pidf:time-offset> </agp-pidf:device-info> <caps:servcaps> <caps:audio>true</caps:audio> <caps:message>true</caps:message> <caps:text>true</caps:text> <agp-caps:file-transfer>true</agp-caps:file-transfer> <agp-caps:screen-sharing>true</agp-caps:screen-sharing> </caps:servcaps> <rpid:user-input idle-threshold="600">active</rpid:user-input> <contact>sip:saghul@test.sip2sip.info</contact> <note>At work!</note> <timestamp>2012-09-19T22:09:56.929088+02:00</timestamp> </tuple> ... </presence> 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
  • 25. AG Projects SIP Infrastructure Experts Presencia con XMPP Saturday, October 6, 2012
  • 26. AG Projects SIP Infrastructure Experts Presencia con XMPP <presence> <status>ready to rock!</status> <priority>50</priority> <c xmlns="http://jabber.org/protocol/caps" node="http://psi-dev.googlecode.com/caps" ver="0.15" ext="ca cs cv e-time ep-notify-2 last-act mr sxe whiteboard"/> <x xmlns="vcard-temp:x:update"> <photo>6185d7579dab3063e71a09fcd0506a769c72af5e</photo> </x> </presence> Saturday, October 6, 2012
  • 27. Sesiones con RTP 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
  • 32. AG Projects SIP Infrastructure Experts ICE 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 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
  • 34. AG Projects SIP Infrastructure Experts Audio y Vídeo con XMPP <iq from='romeo@montague.lit/orchard' id='ph37a419' to='juliet@capulet.lit/balcony' type='set'>   <jingle xmlns='urn:xmpp:jingle:1' action='session-initiate' initiator='romeo@montague.lit/ orchard' sid='a73sjjvkla37jfea'>     <content creator='initiator' name='voice'>       <description xmlns='urn:xmpp:jingle:apps:rtp:1' media='audio'>         <payload-type id='96' name='speex' clockrate='16000'/>         <payload-type id='18' name='G729'/>         <payload-type id='0' name='PCMU' />       </description>       <transport xmlns='urn:xmpp:jingle:transports:ice-udp:1 pwd='asd88fgpdd777uzjYhagZg'           ufrag='8hhy'>         <candidate component='1' foundation='1' generation='0' id='el0747fg11' ip='10.0.1.1'           network='1' port='8998' priority='2130706431' protocol='udp' type='host'/>         <candidate component='1' foundation='2' generation='0' id='y3s2b30v3r' ip='192.0.2.3'           network='1' port='45664' priority='1694498815' protocol='udp' rel-addr='10.0.1.1'           rel-port='8998' type='srflx'/>       </transport>     </content>   </jingle> </iq> Saturday, October 6, 2012
  • 36. AG Projects SIP Infrastructure Experts Conferencias con SIP • Lo habitual: aburridos mixers de RTP • Lo interesante: RTP + chat + conference control • Información: RFC 4575 • Control: RFC 4579 Saturday, October 6, 2012
  • 37. AG Projects SIP Infrastructure Experts <conference-info ... entity="sip:9037396@conference.sip2sip.info" state="full"> <conference-description> <display-text>Ad-hoc conference</display-text> <free-text>Hosted by SylkServer-2.0.0</free-text> </conference-description> <host-info> <web-page>http://sylkserver.com</web-page> </host-info> <conference-state> <user-count>1</user-count> <active>true</active> </conference-state> <users state="full"> <user entity="sip:saghul@sip2sip.info" state="full"> <display-text>Saúl</display-text> <endpoint entity="sip:lcwkhrsu@62.131.6.55:63047" state="full"> <display-text>Saúll</display-text> <status>connected</status> <joining-info> <when>2012-09-19T23:26:18+02:00</when> </joining-info> <media id="186236108"> <type>message</type> </media> </endpoint> </user> </users> </conference-info> 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
  • 39. AG Projects SIP Infrastructure Experts Conferencias con XMPP <presence from='hag66@shakespeare.lit/pda' id='n13mt3l' to='coven@chat.shakespeare.lit/thirdwitch'> <x xmlns='http://jabber.org/protocol/muc'/> </presence> <presence from='coven@chat.shakespeare.lit/firstwitch' id='3DCB0401-D7CF-4E31-BE05-EDF8D057BFBD' to='hag66@shakespeare.lit/pda'> <x xmlns='http://jabber.org/protocol/muc#user'> <item affiliation='owner' role='moderator'/> </x> </presence> <presence from='coven@chat.shakespeare.lit/secondwitch' id='C2CD9EE3-8421-431E-854A-A2AD0CE2E23D' to='hag66@shakespeare.lit/pda'> <x xmlns='http://jabber.org/protocol/muc#user'> <item affiliation='admin' role='moderator'/> </x> </presence> Saturday, October 6, 2012
  • 40. AG Projects SIP Infrastructure Experts Conferencias con XMPP <iq from='romeo@montague.lit/orchard' id='zid615d9' to='juliet@capulet.lit/balcony' type='set'> <conference-info xmlns="urn:ietf:params:xml:ns:conference-info" entity="xmpp:romeo@monague.lit/orchard" state="full" version="1"> <!-- CONFERENCE INFO --> <conference-description> <subject>Ending a relationship</subject> </conference-description> <!-- CONFERENCE STATE --> <conference-state> <user-count>3</user-count> </conference-state> <!-- USERS --> <users> <user entity="xmpp:romeo@montague.lit" state="full"> <display-text>Romeo</display-text> <!-- ENDPOINTS --> <endpoint entity="xmpp:romeo@montague.lit/orchard"> <display-text>Romeo's smartphone</display-text> <status>disconnected</status> ... 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
  • 46. AG Projects SIP Infrastructure Experts SIP SIMPLE Client SDK Saturday, October 6, 2012
  • 47. AG Projects SIP Infrastructure Experts Blink Saturday, October 6, 2012
  • 48. AG Projects SIP Infrastructure Experts SylkServer Conferencing High Definition Audio Instant Messaging File Transfer Presence SIP Networks XMPP Networks SylkServer Saturday, October 6, 2012
  • 49. AG Projects SIP Infrastructure Experts SylkServer • SIP Application Server • Software Libre • ZeroConf • Implementado utilizando SIP SIMPLE Client SDK Saturday, October 6, 2012
  • 50. AG Projects SIP Infrastructure Experts SylkServer: Arquitectura 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
  • 55. AG Projects SIP Infrastructure Experts Arquitectura del gateway XMPP Saturday, October 6, 2012
  • 56. AG Projects SIP Infrastructure Experts Gateway XMPP: IM Saturday, October 6, 2012
  • 57. AG Projects SIP Infrastructure Experts Gateway XMPP: Presencia 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
  • 63. AG Projects SIP Infrastructure Experts Soporte ICE en MediaProxy 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
  • 67. AG Projects SIP Infrastructure Experts SIP + DHT 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
  • 69. AG Projects SIP Infrastructure Experts Saturday, October 6, 2012
  • 70. AG Projects SIP Infrastructure Experts BYE sip:audience@tid SIP/2.0 Via: SIP/2.0/UDP 192.168.99.23:49919;rport;branch=z9hG4bKPjDb30Dx0sH7aM Max-Forwards: 70 From: "saghul" <sip:saul@ag-projects.com>;tag=UCpGKVZbQQx7BUK To: <sip:audience@tid>;tag=as59aef35c Call-ID: DEWDfu63OACwYeQk7MrhmRhRq.1cqqis CSeq: 10633 BYE Route: <sip:81.23.228.129;lr;ftag=UCpGKVZbQQx7BUKY;did=641.a8a9c553> User-Agent: Blink Content-Length: 0 @saghul saul@ag-projects.com sip:saul@ag-projects.com Saturday, October 6, 2012
  • 71. AG Projects SIP Infrastructure Experts Apéndice: enlaces de interés • http://sipsimpleclient.com/ • http://sylkserver.com/ • http://icanblink.com/ • http://sylkserver.ag-projects.com/projects/ sylkserver/wiki/DesignXMPP Saturday, October 6, 2012