SlideShare a Scribd company logo
1 of 62
Bridging the gap between
                 SIP and The WWW
                  for an ubiquitous
        Real Time Communications network



                                             JosΓ© Luis MillΓ‘n Villegas
                                             mailto:jmillan@aliax.net
                                             @jomivi
                                             http://www.jssip.net


IEEE LATINCOM 2012     Bridging the gap between SIP and The WWW
Lecturer

  Involved in VoIP since 2008
  Co-author of draft-ietf-sipcore-sip-websocket
  Main author of JsSIP (The JavaScript SIP Library)
  Always around Open Standards and Free Software




IEEE LATINCOM 2012              Bridging the gap between SIP and The WWW
The World Wide Web

  βž”   Born as a way to share information
  βž”   Nowadays used for..., everything
  βž”   All is done from the browser
      βž”   Easy to use
      βž”   Centralized
  βž”   Is it ready for Real-time Communications?




IEEE LATINCOM 2012            Bridging the gap between SIP and The WWW
SIP

  βž”   RFC 3261 (2002)
  βž”   Application-layer control protocol for session
      management
  βž”   Signaling protocol for VoIP
  βž”   Intelligence is in the User Agent




IEEE LATINCOM 2012           Bridging the gap between SIP and The WWW
SIP (cont.)

  βž”   Bases its fundamentals on existing Internet specifications
      βž”   Internet Message Format (RFC 2822)
      βž”   Uniform Resource Identifiers (RFC 2396)
      βž”   HTTP Authentication (RFC 2617)
      βž”   The TLS Protocol (RFC 5246)
  βž”   Works along with many existing protocols
      βž”   Session Description Protocol (RFC 4566)
      βž”   Real Time Protocol (RFC 3550)
      βž”   Secure Real Time Protocol (RFC 3711)
      βž”   ZRTP (RFC 6189)
  βž”   Only involved in the signaling part of the session



IEEE LATINCOM 2012                         Bridging the gap between SIP and The WWW
SIP (cont.)

  βž”   Simple and extensible core
      βž”   User location
      βž”   Mobility
      βž”   Session setup/management
  βž”   Used in concert with other SIP extensions to build a complete
      multimedia architecture
      βž”   Call Control
      βž”   Security
      βž”   Conferencing
      βž”   Instant Messaging
      βž”   Presence
      βž”   ...




IEEE LATINCOM 2012                     Bridging the gap between SIP and The WWW
SIP
                     Born Into IP Newtorks

  βž”   Ready for packet loss
  βž”   Defines its own retransmission mechanisms
      βž”   Provides reliability under unreliable transports
          (UDP)
  βž”   Works with both IPv4 and IPv6
  βž”   Independent of underlying transport protocol




IEEE LATINCOM 2012               Bridging the gap between SIP and The WWW
SIP
                     User Location



                                                                         User location
                                                                          database
                                                         biloxi.com
                       sip:bob@biloxi.com              proxy/registrar
                                       REGISTER
                                    401 Unauthorized



                                   REGISTER + Credentials

                                        200 OK




IEEE LATINCOM 2012                Bridging the gap between SIP and The WWW
SIP
                        Session Establishment



                                        atlanta.com                 biloxi.com
           sip:alice@atlanta.com                                                            sip:bob@biloxi.com
                             INVITE
                           100 Trying
                                                        INVITE
                                                      100 Trying
                                                                                   INVITE
                                                                                 180 Ringing
                                                      180 Ringing
                          180 Ringing                                              200 OK
                                                       200 OK
                            200 OK
                                                        ACK

                                                         RTP

                                                        BYE
                                                       200 OK




IEEE LATINCOM 2012                                         Bridging the gap between SIP and The WWW
Transports in SIP

  βž”   Mandates UDP + TCP
      βž”   TCP to handle larger messages
  βž”   Defines the use of TLS
      βž”   Hop by hop security
  βž”   SCTP as a Transport for SIP (RFC 4168)
      βž”   Server to server communications
      βž”   Message based instead of stream based
          βž”   Better performance in loss conditions
          βž”   Easier parsing
      βž”   Multihoming



IEEE LATINCOM 2012                          Bridging the gap between SIP and The WWW
Transports in SIP (recap)

  βž”   UDP, TCP, TLS, SCTP, TLS-SCTP
  βž”   Non of them can be used in a web browser to
      establish a connection with a server
  βž”   Here is the gap between SIP and The WWW




IEEE LATINCOM 2012           Bridging the gap between SIP and The WWW
HTTP

  βž”   HTTP/1.1 (RFC 2616) 1999
  βž”   Text-based application layer protocol
  βž”   Synchronous request/response
      βž”   Browser requests, server responds
      βž”   No way to receive asynchronous notifications from
          the server
      βž”   Not designed for Full-Duplex Real-Time




IEEE LATINCOM 2012              Bridging the gap between SIP and The WWW
HTTP based Web Real-Time

  βž”   Real-time attempts
      βž”   Polling
          βž”   The browser sends HTTP requests at regular intervals
              and immediately receives a response
      βž”   Long-polling
          βž”   The browser sends a request to the server and the
              server keeps the request open for a given period of
              time. If a notification is received within that period, a
              response containing the message is sent to the client




IEEE LATINCOM 2012                    Bridging the gap between SIP and The WWW
HTTP based Web Real-Time (cont.)

  βž”   [Long] polling based chat application


                                   HTTP Server
                     Any message for me?


                     Any message for me?


                     Any message for me?

                                                 Hey!
                     Any message for me?
                       Bob says: 'Hey!'




IEEE LATINCOM 2012                         Bridging the gap between SIP and The WWW
HTTP based Web Real-Time (cont.)

  βž”   Flash (Adobe)
      βž”   Propietary
      βž”   Plugin required
      βž”   Not supported in mobile platforms




IEEE LATINCOM 2012              Bridging the gap between SIP and The WWW
HTTP based Web Real-Time (recap)

  βž”   Overhead
  βž”   Bandwidth waste
  βž”   Battery problem in mobile devices




IEEE LATINCOM 2012         Bridging the gap between SIP and The WWW
WebSocket

  βž”   RFC 6455 (December 2011)
      βž”   Bidirectional, full-duplex communication between
          web client and server
      βž”   Connection oriented transport (layered over TCP)
      βž”   Tunneled over TLS for secure communications
      βž”   HTTP is used in handshake
          βž”   Easily integration with firewall rules
          βž”   Reuses existing infrastructure




IEEE LATINCOM 2012                     Bridging the gap between SIP and The WWW
WebSocket
                     Opening Handshake




IEEE LATINCOM 2012           Bridging the gap between SIP and The WWW
WebSocket
                                         API
  βž”   API Standarization by W3C
      βž”   http://dev.w3.org/html5/websockets
  βž”   Controlled by the JavaScript application from the browser
      βž”   Methods
          βž”   send( text / binary )
          βž”   close( )
      βž”   Callbacks
          βž”   onopen
          βž”   onerror
          βž”   onclose
          βž”   onmessage




IEEE LATINCOM 2012                        Bridging the gap between SIP and The WWW
WebSocket
                                 Example
  βž”   The web browser connects to the WebSocket server
  βž”   The user is alerted when a notification arrives from the server




IEEE LATINCOM 2012                        Bridging the gap between SIP and The WWW
WebSocket
          Implementation in Web Browsers




                     Source: http://caniuse.com/websockets


IEEE LATINCOM 2012                     Bridging the gap between SIP and The WWW
WebSocket as a Transport for SIP

              draft-ietf-sipcore-sip-websocket-5

       The WebSocket Protocol as a Transport for SIP
  This specification defines a new WebSocket sub-protocol
  (as defined in section 1.9 in RFC6455) for transporting
  SIP messages between a WebSocket client and server [...]




IEEE LATINCOM 2012            Bridging the gap between SIP and The WWW
WebSocket as a Transport for SIP
                    Example I

  βž”   SIP Registration over WebSocket




IEEE LATINCOM 2012        Bridging the gap between SIP and The WWW
WebSocket as a Transport for SIP
                Example I (cont.)

  βž”   WebSocket Opening Handshake




IEEE LATINCOM 2012        Bridging the gap between SIP and The WWW
WebSocket as a Transport for SIP
                 Example I (cont.)

  βž”   REGISTER request
      βž”   Sent over the just created permanent WebSocket
          connection




IEEE LATINCOM 2012             Bridging the gap between SIP and The WWW
WebSocket as a Transport for SIP
                Example I (cont.)

  βž”   Response to REGISTER




IEEE LATINCOM 2012        Bridging the gap between SIP and The WWW
WebSocket as a Transport for SIP
                    Example II
                                    example.com
                                  SIP proxy/registrar




   INVITE sip:alice@example.com                         INVITE sip:alice@example.com

                        WS                                 TCP




                   Web browser                         SIP phone
             sip:alice@example.com               sip:bob@example.com


IEEE LATINCOM 2012                          Bridging the gap between SIP and The WWW
WebSocket as a Transport for SIP (cont.)

  βž”   Devices which can't establish other transport
      connections but WebSocket connections are
      welcome to the SIP world
  βž”   SIP networks are expanded thanks to this new
      devices
  βž”   Web browsers can now speak SIP




IEEE LATINCOM 2012          Bridging the gap between SIP and The WWW
WebSocket as a Transport for SIP (recap)

  βž”   We can use SIP from the web browser
  βž”   But we want to talk and see each other
  βž”   How to get the media...
      βž”   Flash?
      βž”   Java Applet?
      βž”   ActiveX?
      βž”   MS Silverlight?
  βž”   ..., in an open standard way


IEEE LATINCOM 2012              Bridging the gap between SIP and The WWW
WebRTC



   Real Time Communications in Web Browsers

  The goal is through simple Javascript Application Program
 Interface (API) to make browsers Real-Time Communication
                        (RTC) capable



                        SRTP/DATA




IEEE LATINCOM 2012            Bridging the gap between SIP and The WWW
State of the Art
                 of RTC in Web Browsers

  βž”   Facebook & Skype
  βž”   Google Hangouts
  βž”   Cisco Webex

      βž”   Installation required
      βž”   Proprietary plugins required




IEEE LATINCOM 2012                Bridging the gap between SIP and The WWW
WebRTC
                        Use Cases

  βž”   Remote classroom
  βž”   Customer service
  βž”   Remote assistance
  βž”   Online health care
  βž”   Social networks
  βž”   What else?




IEEE LATINCOM 2012          Bridging the gap between SIP and The WWW
WebRTC
                     Architecture




                      Source: http://www.webrtc.org


IEEE LATINCOM 2012                Bridging the gap between SIP and The WWW
WebRTC
                          Media

  βž”   Mandatory to implement codecs
      βž”   Narrowband audio: G.711
      βž”   Wideband audio: Opus
      βž”   Video: Debate between VP8 y H.264 AVC




IEEE LATINCOM 2012            Bridging the gap between SIP and The WWW
WebRTC
                         Media Transport

  βž”   Secure by design
      βž”   SRTP (RFC 3711): Secure RTP
          βž”   Uses symmetric key cryptography to offer confidentiality
              and integrity
      βž”   DTLS (RFC 6347): Datagram Transport Layer
          Security
          βž”   Equivalent to TLS, but over UDP
          βž”   Used for SRTP key exchange




IEEE LATINCOM 2012                   Bridging the gap between SIP and The WWW
WebRTC
                                Multimedia Session


                                   OFFER / ANSWER

          HTML/CSS/JavaScript                             HTML/CSS/JavaScript




                                       SRTP/DATA




IEEE LATINCOM 2012                          Bridging the gap between SIP and The WWW
WebRTC
               Multimedia Session Elements

      βž”   ICE (RFC 5245): Interactive Connectivity
          Establishment
          βž”   Candidate handling (Offer/Answer generation)
               βž”   Local candidates (endpoint network interfaces)
               βž”   Server reflexive candidates. Uses STUN
               βž”   Relay candidates. Uses TURN
          βž”   Connectivity checks using STUN




IEEE LATINCOM 2012                        Bridging the gap between SIP and The WWW
WebRTC
          Multimedia Session Elements (cont.)

      βž”   STUN (RFC 5389): Session Traversal Utilities for
          NAT
           βž”   Permits an endpoint to determine the IP address and
               port allocated to it by a NAT
           βž”   Connectivity checks between two endpoints
           βž”   Keep-alive protocol to maintain NAT bindings




IEEE LATINCOM 2012                   Bridging the gap between SIP and The WWW
WebRTC
          Multimedia Session Elements (cont.)

      βž”   TURN (RFC 5766): Traversal Using Relays
          around NAT
           βž”   Used when peer to peer communication is not possible
                βž”   When both peers are behind symetric NATs
                βž”   Guarantees the communication
           βž”   Drawbacks
                βž”   Inserts delay
                βž”   Server resources needed




IEEE LATINCOM 2012                        Bridging the gap between SIP and The WWW
WebRTC
                      Offer/Answer model

  βž”   SDP (RFC 3264): Session Description
      Protocol
      βž”   Already used in SIP
      βž”   Session description
          βž”   Listening IP address & ports
          βž”   Offering media attributes (codecs, rates, etc)




IEEE LATINCOM 2012                    Bridging the gap between SIP and The WWW
WebRTC
                         Offer/Answer model (cont.)


          Listening IP
          addresses
          and ports


  AUDIO



          CODECS




          Listening IP
          addresses
          and ports
  VIDEO



          CODECS




IEEE LATINCOM 2012                    Bridging the gap between SIP and The WWW
WebRTC
                Multimedia Session (cont.)

  βž”   IP addresses are known
  βž”   Media capabilities are known
  βž”   Peer to peer media flow management is solved
  βž”   We have got a Session Description
      βž”   Which must be sent to the other peer
      βž”   …, but WebRTC does not define how
      βž”   It is up to the web application




IEEE LATINCOM 2012                 Bridging the gap between SIP and The WWW
WebRTC
               Multimedia Session (cont.)

  βž”   We are in a browser
      βž”   HTTP [long] polling
      βž”   Flash
      βž”   WebSocket




IEEE LATINCOM 2012              Bridging the gap between SIP and The WWW
WebRTC Standards

  βž”   IETF RTCWeb WG
      βž”   Defines WEB-browsers based Real-Time
          Communication Protocols
      βž”   http://datatracker.ietf.org/wg/rtcweb
  βž”   W3C WebRTC WG
      βž”   Defines a set of ECMAScript APIs to manage the
          WebRTC stack and multimedia sessions
      βž”   http://www.w3.org/TR/webrtc



IEEE LATINCOM 2012               Bridging the gap between SIP and The WWW
WebRTC Standards
                          IETF RTCWeb WG Documents
  βž”
      draft-ietf-rtcweb-audio
      βž”   WebRTC Audio Codec and Processing Requirements
  βž”   draft-ietf-rtcweb-data-channel
      βž”   RTCWeb Datagram Connection
  βž”   draft-ietf-rtcweb-jsep
      βž”   Javascript Session Establishment Protocol
  βž”
      draft-ietf-rtcweb-overview
      βž”
          Overview: Real Time Protocols for Brower-based Applications
  βž”   draft-ietf-rtcweb-qos
      βž”   DSCP and other packet markings for RTCWeb QoS
  βž”   draft-ietf-rtcweb-rtp-usage
      βž”   Web Real-Time Communication (WebRTC): Media Transport and Use of RTP
  βž”   draft-ietf-rtcweb-security
      βž”   Security Considerations for RTC-Web
  βž”
      draft-ietf-rtcweb-security-arch
      βž”
          RTCWEB Security Architecture
  βž”   draft-ietf-rtcweb-use-cases-and-requirements
      βž”   Web Real-Time Communication Use-cases and Requirements




IEEE LATINCOM 2012                                                      Bridging the gap between SIP and The WWW
WebRTC
                            Implementations
  βž”   Google Chrome
      βž”    Lead implementation
  βž”   Mozilla Firefox
      βž”    Available in Aurora builds
  βž”   Opera
      βž”    Implementation not announced yet
  βž”   Safari
      βž”
           No comment
  βž”   IE
      βž”    Not yet available



IEEE LATINCOM 2012                      Bridging the gap between SIP and The WWW
SIP Signaling for WebRTC

  βž”   Why
      βž”   Open standard
      βž”   Mature
      βž”   Widely deployed
      βž”   Reuse existing infrastructure




IEEE LATINCOM 2012              Bridging the gap between SIP and The WWW
SIP Signaling for WebRTC (cont.)

  βž”   How
      βž”   draft-ietf-sipcore-sip-websocket
      βž”   Implementations




IEEE LATINCOM 2012               Bridging the gap between SIP and The WWW
JsSIP

  βž”   Client side pure JavaScript SIP library
      βž”   http://www.jssip.net
      βž”   https://github.com/versatica/JsSIP




IEEE LATINCOM 2012                 Bridging the gap between SIP and The WWW
JsSIP (cont.)

  βž”   Lightweight (~140KB)
  βž”   Provides an API to build SIP clients
  βž”   Functionalities
      βž”   Audio/video calls
      βž”   Instant Messaging
      βž”   Subscriptions
      βž”   More to come!




IEEE LATINCOM 2012              Bridging the gap between SIP and The WWW
JsSIP (cont.)

  βž”   Manages the WebRTC stack in the browser
      through the WebRTC API
      βž”   Multimedia device access
      βž”   Audio/video management
  βž”   Gets the SDP generated by the WebRTC
      stack and sends it to the remote party using
      SIP




IEEE LATINCOM 2012             Bridging the gap between SIP and The WWW
JsSIP API
                     User Agent Creation




IEEE LATINCOM 2012            Bridging the gap between SIP and The WWW
JsSIP API
            User Agent Callback Definition




IEEE LATINCOM 2012         Bridging the gap between SIP and The WWW
JsSIP API
                     Outbound Calls




IEEE LATINCOM 2012          Bridging the gap between SIP and The WWW
JsSIP API
                     Instant Messaging




IEEE LATINCOM 2012           Bridging the gap between SIP and The WWW
Other Implementations


  βž”   SIPML5
      βž”   http://sipml5.org




IEEE LATINCOM 2012            Bridging the gap between SIP and The WWW
SIP over WebSocket
                      in the Server Side

  βž”   Why is it necessary
        SIP WebSocket clients connect to the server and
        send/receive SIP messages through the
        WebSocket connection
  βž”   Does it imply a new SIP node?
        No. It implies that Proxies and other SIP servers
        implement WebSocket as a transport protocol,
        analogous to UDP, TCP, SCTP, etc



IEEE LATINCOM 2012             Bridging the gap between SIP and The WWW
OverSIP


  βž”   SIP Proxy with WebSocket transport
      βž”   http://oversip.net
      βž”   https://github.com/versatica/OverSIP




IEEE LATINCOM 2012                Bridging the gap between SIP and The WWW
Other Implementations


  βž”   Kamailio
      βž”   http://www.kamailio.org
  βž”   Asterisk
      βž”   http://www.asterisk.org




IEEE LATINCOM 2012                  Bridging the gap between SIP and The WWW
Demo Architecture

           SIP proxy/registrar                         SIP proxy/registrar
                jssip.net                                   aliax.net
                                        UDP




                     TCP                                     UDP
                                 OverSIP SIP Oubound
                                      oversip.net




                           WS                               WS




                                        SRTP




                      JsSIP                              JsSIP
             sip:jmillan@jssip.net                 sip:ibc@aliax.net

IEEE LATINCOM 2012                         Bridging the gap between SIP and The WWW
SIP Signaling for WebRTC (recap)

  βž”   WebRTC
  βž”   draft-ietf-sipcore-sip-websocket
  βž”   Implementations


  The gap between SIP en the WWW is bridged!




IEEE LATINCOM 2012          Bridging the gap between SIP and The WWW
JosΓ© Luis MillΓ‘n Villegas
                                           mailto:jmillan@aliax.net
                                           @jomivi
                                           http://www.jssip.net


IEEE LATINCOM 2012   Bridging the gap between SIP and The WWW

More Related Content

What's hot

JmDNS : Service Discovery for the 21st Century
 JmDNS : Service Discovery for the 21st Century JmDNS : Service Discovery for the 21st Century
JmDNS : Service Discovery for the 21st Century
Gnu Alsonative
Β 
Fltg & Otctbg 2008 Company Profile Small File
Fltg & Otctbg   2008 Company Profile   Small FileFltg & Otctbg   2008 Company Profile   Small File
Fltg & Otctbg 2008 Company Profile Small File
guestb85e8
Β 
Ole Ipv4onlifesupport
Ole Ipv4onlifesupport Ole Ipv4onlifesupport
Ole Ipv4onlifesupport
IPv6no
Β 
Jan zorz procurement-ripe-501
Jan zorz procurement-ripe-501Jan zorz procurement-ripe-501
Jan zorz procurement-ripe-501
IPv6no
Β 
Cisco connect jabber client update
Cisco connect   jabber client updateCisco connect   jabber client update
Cisco connect jabber client update
Vitor Costa
Β 
Geir Making the leap to ipv6 final
Geir Making the leap to ipv6 finalGeir Making the leap to ipv6 final
Geir Making the leap to ipv6 final
IPv6no
Β 
Ron Broersma dren-stavanger-22 nov2011
Ron Broersma dren-stavanger-22 nov2011Ron Broersma dren-stavanger-22 nov2011
Ron Broersma dren-stavanger-22 nov2011
IPv6no
Β 

What's hot (18)

JmDNS : Service Discovery for the 21st Century
 JmDNS : Service Discovery for the 21st Century JmDNS : Service Discovery for the 21st Century
JmDNS : Service Discovery for the 21st Century
Β 
Fb i pv6-sparchimanv1.0
Fb i pv6-sparchimanv1.0Fb i pv6-sparchimanv1.0
Fb i pv6-sparchimanv1.0
Β 
Fltg & Otctbg 2008 Company Profile Small File
Fltg & Otctbg   2008 Company Profile   Small FileFltg & Otctbg   2008 Company Profile   Small File
Fltg & Otctbg 2008 Company Profile Small File
Β 
Ole Ipv4onlifesupport
Ole Ipv4onlifesupport Ole Ipv4onlifesupport
Ole Ipv4onlifesupport
Β 
Jan zorz procurement-ripe-501
Jan zorz procurement-ripe-501Jan zorz procurement-ripe-501
Jan zorz procurement-ripe-501
Β 
Cisco connect jabber client update
Cisco connect   jabber client updateCisco connect   jabber client update
Cisco connect jabber client update
Β 
Cisco Presentation jabber update
Cisco Presentation   jabber updateCisco Presentation   jabber update
Cisco Presentation jabber update
Β 
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
Cisco APIs: An Interactive Assistant for the Web2Day Developer ConferenceCisco APIs: An Interactive Assistant for the Web2Day Developer Conference
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
Β 
Scaling Twilio - Evan Cooke - Twilio Conference 2011
Scaling Twilio - Evan Cooke - Twilio Conference 2011Scaling Twilio - Evan Cooke - Twilio Conference 2011
Scaling Twilio - Evan Cooke - Twilio Conference 2011
Β 
Geir Making the leap to ipv6 final
Geir Making the leap to ipv6 finalGeir Making the leap to ipv6 final
Geir Making the leap to ipv6 final
Β 
Cisco Spark and Tropo and the Programmable Web
Cisco Spark and Tropo and the Programmable WebCisco Spark and Tropo and the Programmable Web
Cisco Spark and Tropo and the Programmable Web
Β 
implementing IPv6 in an ISP network, case study and lessons learned - Amos Ro...
implementing IPv6 in an ISP network, case study and lessons learned - Amos Ro...implementing IPv6 in an ISP network, case study and lessons learned - Amos Ro...
implementing IPv6 in an ISP network, case study and lessons learned - Amos Ro...
Β 
Cisco Spark & Tropo API Workshop
Cisco Spark & Tropo API WorkshopCisco Spark & Tropo API Workshop
Cisco Spark & Tropo API Workshop
Β 
Coding 102 REST API Basics Using Spark
Coding 102 REST API Basics Using SparkCoding 102 REST API Basics Using Spark
Coding 102 REST API Basics Using Spark
Β 
Telisca products presentation
Telisca products presentationTelisca products presentation
Telisca products presentation
Β 
Ron Broersma dren-stavanger-22 nov2011
Ron Broersma dren-stavanger-22 nov2011Ron Broersma dren-stavanger-22 nov2011
Ron Broersma dren-stavanger-22 nov2011
Β 
IPv6 in the Telco Cloud
IPv6 in the Telco CloudIPv6 in the Telco Cloud
IPv6 in the Telco Cloud
Β 
Qi Comm
Qi Comm Qi Comm
Qi Comm
Β 

Similar to IEEE latincom2012

Westhawk integration
Westhawk integrationWesthawk integration
Westhawk integration
Tim Panton
Β 
JmDNS : Service Discovery for the 21st Century
 JmDNS : Service Discovery for the 21st Century JmDNS : Service Discovery for the 21st Century
JmDNS : Service Discovery for the 21st Century
Gnu Alsonative
Β 
Multipoint Video Conference Over Public Internet
Multipoint Video Conference Over Public InternetMultipoint Video Conference Over Public Internet
Multipoint Video Conference Over Public Internet
Videoguy
Β 
Multipoint Video Conference Over Public Internet
Multipoint Video Conference Over Public InternetMultipoint Video Conference Over Public Internet
Multipoint Video Conference Over Public Internet
Videoguy
Β 
Multipoint Video Conference Over Public Internet
Multipoint Video Conference Over Public InternetMultipoint Video Conference Over Public Internet
Multipoint Video Conference Over Public Internet
Videoguy
Β 
Mobicents Summit 2012 - Orange Mobicents WebRTC Contribution : JAIN SIP JS
Mobicents Summit 2012 - Orange Mobicents WebRTC Contribution : JAIN SIP JSMobicents Summit 2012 - Orange Mobicents WebRTC Contribution : JAIN SIP JS
Mobicents Summit 2012 - Orange Mobicents WebRTC Contribution : JAIN SIP JS
telestax
Β 
D1-3-Signaling
D1-3-SignalingD1-3-Signaling
D1-3-Signaling
Oleg Levy
Β 

Similar to IEEE latincom2012 (20)

Boost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Boost JBoss AS7 with HTML5 WebRTC for Real Time CommunicationsBoost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Boost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Β 
Kamailio :: A Quick Introduction
Kamailio :: A Quick IntroductionKamailio :: A Quick Introduction
Kamailio :: A Quick Introduction
Β 
FOSS Sthlm: Realtime Communication Update
FOSS Sthlm: Realtime Communication UpdateFOSS Sthlm: Realtime Communication Update
FOSS Sthlm: Realtime Communication Update
Β 
WebSocket protocol
WebSocket protocolWebSocket protocol
WebSocket protocol
Β 
Html5 web sockets - Brad Drysdale - London Web 2011-10-20
Html5 web sockets - Brad Drysdale - London Web 2011-10-20Html5 web sockets - Brad Drysdale - London Web 2011-10-20
Html5 web sockets - Brad Drysdale - London Web 2011-10-20
Β 
Vo ip sip
Vo ip sipVo ip sip
Vo ip sip
Β 
Modern VoIP in modern infrastructures
Modern VoIP in modern infrastructuresModern VoIP in modern infrastructures
Modern VoIP in modern infrastructures
Β 
WebRTC is [almost] here!
WebRTC is [almost] here!WebRTC is [almost] here!
WebRTC is [almost] here!
Β 
Westhawk integration
Westhawk integrationWesthawk integration
Westhawk integration
Β 
JmDNS : Service Discovery for the 21st Century
 JmDNS : Service Discovery for the 21st Century JmDNS : Service Discovery for the 21st Century
JmDNS : Service Discovery for the 21st Century
Β 
Multipoint Video Conference Over Public Internet
Multipoint Video Conference Over Public InternetMultipoint Video Conference Over Public Internet
Multipoint Video Conference Over Public Internet
Β 
Multipoint Video Conference Over Public Internet
Multipoint Video Conference Over Public InternetMultipoint Video Conference Over Public Internet
Multipoint Video Conference Over Public Internet
Β 
Multipoint Video Conference Over Public Internet
Multipoint Video Conference Over Public InternetMultipoint Video Conference Over Public Internet
Multipoint Video Conference Over Public Internet
Β 
AWS Customer Presentation - Twilio
AWS Customer Presentation - TwilioAWS Customer Presentation - Twilio
AWS Customer Presentation - Twilio
Β 
Mobicents Summit 2012 - Orange Mobicents WebRTC Contribution : JAIN SIP JS
Mobicents Summit 2012 - Orange Mobicents WebRTC Contribution : JAIN SIP JSMobicents Summit 2012 - Orange Mobicents WebRTC Contribution : JAIN SIP JS
Mobicents Summit 2012 - Orange Mobicents WebRTC Contribution : JAIN SIP JS
Β 
D1-3-Signaling
D1-3-SignalingD1-3-Signaling
D1-3-Signaling
Β 
Plone Deployment (PloneConf Edition)
Plone Deployment (PloneConf Edition)Plone Deployment (PloneConf Edition)
Plone Deployment (PloneConf Edition)
Β 
Maximize Application Performance and Bandwidth Efficiency with WAN Optimization
Maximize Application Performance and Bandwidth Efficiency with WAN OptimizationMaximize Application Performance and Bandwidth Efficiency with WAN Optimization
Maximize Application Performance and Bandwidth Efficiency with WAN Optimization
Β 
WebRTC Integration from Tim Panton
WebRTC Integration from Tim PantonWebRTC Integration from Tim Panton
WebRTC Integration from Tim Panton
Β 
ITSPA May 2013 - WebRTC, TURN, and WebSocket
ITSPA May 2013 - WebRTC, TURN, and WebSocketITSPA May 2013 - WebRTC, TURN, and WebSocket
ITSPA May 2013 - WebRTC, TURN, and WebSocket
Β 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
Β 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
Β 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
Β 

Recently uploaded (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Β 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Β 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
Β 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Β 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Β 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Β 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
Β 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
Β 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Β 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Β 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
Β 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Β 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Β 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
Β 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Β 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Β 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Β 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Β 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Β 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Β 

IEEE latincom2012

  • 1. Bridging the gap between SIP and The WWW for an ubiquitous Real Time Communications network JosΓ© Luis MillΓ‘n Villegas mailto:jmillan@aliax.net @jomivi http://www.jssip.net IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 2. Lecturer Involved in VoIP since 2008 Co-author of draft-ietf-sipcore-sip-websocket Main author of JsSIP (The JavaScript SIP Library) Always around Open Standards and Free Software IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 3. The World Wide Web βž” Born as a way to share information βž” Nowadays used for..., everything βž” All is done from the browser βž” Easy to use βž” Centralized βž” Is it ready for Real-time Communications? IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 4. SIP βž” RFC 3261 (2002) βž” Application-layer control protocol for session management βž” Signaling protocol for VoIP βž” Intelligence is in the User Agent IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 5. SIP (cont.) βž” Bases its fundamentals on existing Internet specifications βž” Internet Message Format (RFC 2822) βž” Uniform Resource Identifiers (RFC 2396) βž” HTTP Authentication (RFC 2617) βž” The TLS Protocol (RFC 5246) βž” Works along with many existing protocols βž” Session Description Protocol (RFC 4566) βž” Real Time Protocol (RFC 3550) βž” Secure Real Time Protocol (RFC 3711) βž” ZRTP (RFC 6189) βž” Only involved in the signaling part of the session IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 6. SIP (cont.) βž” Simple and extensible core βž” User location βž” Mobility βž” Session setup/management βž” Used in concert with other SIP extensions to build a complete multimedia architecture βž” Call Control βž” Security βž” Conferencing βž” Instant Messaging βž” Presence βž” ... IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 7. SIP Born Into IP Newtorks βž” Ready for packet loss βž” Defines its own retransmission mechanisms βž” Provides reliability under unreliable transports (UDP) βž” Works with both IPv4 and IPv6 βž” Independent of underlying transport protocol IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 8. SIP User Location User location database biloxi.com sip:bob@biloxi.com proxy/registrar REGISTER 401 Unauthorized REGISTER + Credentials 200 OK IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 9. SIP Session Establishment atlanta.com biloxi.com sip:alice@atlanta.com sip:bob@biloxi.com INVITE 100 Trying INVITE 100 Trying INVITE 180 Ringing 180 Ringing 180 Ringing 200 OK 200 OK 200 OK ACK RTP BYE 200 OK IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 10. Transports in SIP βž” Mandates UDP + TCP βž” TCP to handle larger messages βž” Defines the use of TLS βž” Hop by hop security βž” SCTP as a Transport for SIP (RFC 4168) βž” Server to server communications βž” Message based instead of stream based βž” Better performance in loss conditions βž” Easier parsing βž” Multihoming IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 11. Transports in SIP (recap) βž” UDP, TCP, TLS, SCTP, TLS-SCTP βž” Non of them can be used in a web browser to establish a connection with a server βž” Here is the gap between SIP and The WWW IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 12. HTTP βž” HTTP/1.1 (RFC 2616) 1999 βž” Text-based application layer protocol βž” Synchronous request/response βž” Browser requests, server responds βž” No way to receive asynchronous notifications from the server βž” Not designed for Full-Duplex Real-Time IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 13. HTTP based Web Real-Time βž” Real-time attempts βž” Polling βž” The browser sends HTTP requests at regular intervals and immediately receives a response βž” Long-polling βž” The browser sends a request to the server and the server keeps the request open for a given period of time. If a notification is received within that period, a response containing the message is sent to the client IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 14. HTTP based Web Real-Time (cont.) βž” [Long] polling based chat application HTTP Server Any message for me? Any message for me? Any message for me? Hey! Any message for me? Bob says: 'Hey!' IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 15. HTTP based Web Real-Time (cont.) βž” Flash (Adobe) βž” Propietary βž” Plugin required βž” Not supported in mobile platforms IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 16. HTTP based Web Real-Time (recap) βž” Overhead βž” Bandwidth waste βž” Battery problem in mobile devices IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 17. WebSocket βž” RFC 6455 (December 2011) βž” Bidirectional, full-duplex communication between web client and server βž” Connection oriented transport (layered over TCP) βž” Tunneled over TLS for secure communications βž” HTTP is used in handshake βž” Easily integration with firewall rules βž” Reuses existing infrastructure IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 18. WebSocket Opening Handshake IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 19. WebSocket API βž” API Standarization by W3C βž” http://dev.w3.org/html5/websockets βž” Controlled by the JavaScript application from the browser βž” Methods βž” send( text / binary ) βž” close( ) βž” Callbacks βž” onopen βž” onerror βž” onclose βž” onmessage IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 20. WebSocket Example βž” The web browser connects to the WebSocket server βž” The user is alerted when a notification arrives from the server IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 21. WebSocket Implementation in Web Browsers Source: http://caniuse.com/websockets IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 22. WebSocket as a Transport for SIP draft-ietf-sipcore-sip-websocket-5 The WebSocket Protocol as a Transport for SIP This specification defines a new WebSocket sub-protocol (as defined in section 1.9 in RFC6455) for transporting SIP messages between a WebSocket client and server [...] IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 23. WebSocket as a Transport for SIP Example I βž” SIP Registration over WebSocket IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 24. WebSocket as a Transport for SIP Example I (cont.) βž” WebSocket Opening Handshake IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 25. WebSocket as a Transport for SIP Example I (cont.) βž” REGISTER request βž” Sent over the just created permanent WebSocket connection IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 26. WebSocket as a Transport for SIP Example I (cont.) βž” Response to REGISTER IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 27. WebSocket as a Transport for SIP Example II example.com SIP proxy/registrar INVITE sip:alice@example.com INVITE sip:alice@example.com WS TCP Web browser SIP phone sip:alice@example.com sip:bob@example.com IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 28. WebSocket as a Transport for SIP (cont.) βž” Devices which can't establish other transport connections but WebSocket connections are welcome to the SIP world βž” SIP networks are expanded thanks to this new devices βž” Web browsers can now speak SIP IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 29. WebSocket as a Transport for SIP (recap) βž” We can use SIP from the web browser βž” But we want to talk and see each other βž” How to get the media... βž” Flash? βž” Java Applet? βž” ActiveX? βž” MS Silverlight? βž” ..., in an open standard way IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 30. WebRTC Real Time Communications in Web Browsers The goal is through simple Javascript Application Program Interface (API) to make browsers Real-Time Communication (RTC) capable SRTP/DATA IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 31. State of the Art of RTC in Web Browsers βž” Facebook & Skype βž” Google Hangouts βž” Cisco Webex βž” Installation required βž” Proprietary plugins required IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 32. WebRTC Use Cases βž” Remote classroom βž” Customer service βž” Remote assistance βž” Online health care βž” Social networks βž” What else? IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 33. WebRTC Architecture Source: http://www.webrtc.org IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 34. WebRTC Media βž” Mandatory to implement codecs βž” Narrowband audio: G.711 βž” Wideband audio: Opus βž” Video: Debate between VP8 y H.264 AVC IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 35. WebRTC Media Transport βž” Secure by design βž” SRTP (RFC 3711): Secure RTP βž” Uses symmetric key cryptography to offer confidentiality and integrity βž” DTLS (RFC 6347): Datagram Transport Layer Security βž” Equivalent to TLS, but over UDP βž” Used for SRTP key exchange IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 36. WebRTC Multimedia Session OFFER / ANSWER HTML/CSS/JavaScript HTML/CSS/JavaScript SRTP/DATA IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 37. WebRTC Multimedia Session Elements βž” ICE (RFC 5245): Interactive Connectivity Establishment βž” Candidate handling (Offer/Answer generation) βž” Local candidates (endpoint network interfaces) βž” Server reflexive candidates. Uses STUN βž” Relay candidates. Uses TURN βž” Connectivity checks using STUN IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 38. WebRTC Multimedia Session Elements (cont.) βž” STUN (RFC 5389): Session Traversal Utilities for NAT βž” Permits an endpoint to determine the IP address and port allocated to it by a NAT βž” Connectivity checks between two endpoints βž” Keep-alive protocol to maintain NAT bindings IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 39. WebRTC Multimedia Session Elements (cont.) βž” TURN (RFC 5766): Traversal Using Relays around NAT βž” Used when peer to peer communication is not possible βž” When both peers are behind symetric NATs βž” Guarantees the communication βž” Drawbacks βž” Inserts delay βž” Server resources needed IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 40. WebRTC Offer/Answer model βž” SDP (RFC 3264): Session Description Protocol βž” Already used in SIP βž” Session description βž” Listening IP address & ports βž” Offering media attributes (codecs, rates, etc) IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 41. WebRTC Offer/Answer model (cont.) Listening IP addresses and ports AUDIO CODECS Listening IP addresses and ports VIDEO CODECS IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 42. WebRTC Multimedia Session (cont.) βž” IP addresses are known βž” Media capabilities are known βž” Peer to peer media flow management is solved βž” We have got a Session Description βž” Which must be sent to the other peer βž” …, but WebRTC does not define how βž” It is up to the web application IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 43. WebRTC Multimedia Session (cont.) βž” We are in a browser βž” HTTP [long] polling βž” Flash βž” WebSocket IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 44. WebRTC Standards βž” IETF RTCWeb WG βž” Defines WEB-browsers based Real-Time Communication Protocols βž” http://datatracker.ietf.org/wg/rtcweb βž” W3C WebRTC WG βž” Defines a set of ECMAScript APIs to manage the WebRTC stack and multimedia sessions βž” http://www.w3.org/TR/webrtc IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 45. WebRTC Standards IETF RTCWeb WG Documents βž” draft-ietf-rtcweb-audio βž” WebRTC Audio Codec and Processing Requirements βž” draft-ietf-rtcweb-data-channel βž” RTCWeb Datagram Connection βž” draft-ietf-rtcweb-jsep βž” Javascript Session Establishment Protocol βž” draft-ietf-rtcweb-overview βž” Overview: Real Time Protocols for Brower-based Applications βž” draft-ietf-rtcweb-qos βž” DSCP and other packet markings for RTCWeb QoS βž” draft-ietf-rtcweb-rtp-usage βž” Web Real-Time Communication (WebRTC): Media Transport and Use of RTP βž” draft-ietf-rtcweb-security βž” Security Considerations for RTC-Web βž” draft-ietf-rtcweb-security-arch βž” RTCWEB Security Architecture βž” draft-ietf-rtcweb-use-cases-and-requirements βž” Web Real-Time Communication Use-cases and Requirements IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 46. WebRTC Implementations βž” Google Chrome βž” Lead implementation βž” Mozilla Firefox βž” Available in Aurora builds βž” Opera βž” Implementation not announced yet βž” Safari βž” No comment βž” IE βž” Not yet available IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 47. SIP Signaling for WebRTC βž” Why βž” Open standard βž” Mature βž” Widely deployed βž” Reuse existing infrastructure IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 48. SIP Signaling for WebRTC (cont.) βž” How βž” draft-ietf-sipcore-sip-websocket βž” Implementations IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 49. JsSIP βž” Client side pure JavaScript SIP library βž” http://www.jssip.net βž” https://github.com/versatica/JsSIP IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 50. JsSIP (cont.) βž” Lightweight (~140KB) βž” Provides an API to build SIP clients βž” Functionalities βž” Audio/video calls βž” Instant Messaging βž” Subscriptions βž” More to come! IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 51. JsSIP (cont.) βž” Manages the WebRTC stack in the browser through the WebRTC API βž” Multimedia device access βž” Audio/video management βž” Gets the SDP generated by the WebRTC stack and sends it to the remote party using SIP IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 52. JsSIP API User Agent Creation IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 53. JsSIP API User Agent Callback Definition IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 54. JsSIP API Outbound Calls IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 55. JsSIP API Instant Messaging IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 56. Other Implementations βž” SIPML5 βž” http://sipml5.org IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 57. SIP over WebSocket in the Server Side βž” Why is it necessary SIP WebSocket clients connect to the server and send/receive SIP messages through the WebSocket connection βž” Does it imply a new SIP node? No. It implies that Proxies and other SIP servers implement WebSocket as a transport protocol, analogous to UDP, TCP, SCTP, etc IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 58. OverSIP βž” SIP Proxy with WebSocket transport βž” http://oversip.net βž” https://github.com/versatica/OverSIP IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 59. Other Implementations βž” Kamailio βž” http://www.kamailio.org βž” Asterisk βž” http://www.asterisk.org IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 60. Demo Architecture SIP proxy/registrar SIP proxy/registrar jssip.net aliax.net UDP TCP UDP OverSIP SIP Oubound oversip.net WS WS SRTP JsSIP JsSIP sip:jmillan@jssip.net sip:ibc@aliax.net IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 61. SIP Signaling for WebRTC (recap) βž” WebRTC βž” draft-ietf-sipcore-sip-websocket βž” Implementations The gap between SIP en the WWW is bridged! IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • 62. JosΓ© Luis MillΓ‘n Villegas mailto:jmillan@aliax.net @jomivi http://www.jssip.net IEEE LATINCOM 2012 Bridging the gap between SIP and The WWW

Editor's Notes

  1. [Come back when self presenting.] Talk to you about New things happening in the WWW in the last times How they will affect to the Internet and probably society How they will probably change the way the web is used in the coming years
  2. - Mi name - Studied in the engineering school of the Basque country in Bilbao, Spain - Work for a Internet Service Provider in Spain, providing VoIP services - I love doing VoIP research and development in my free time
  3. Was born as a way to share information between researchers in 1989 thanks to Tim Berners-Lee . Nowadays it is used for... (near everything) - read the newspaper - latest news - Keep in touch with people - Purchase and sell anything - It is used to do those and more things β€œremotely”. security mechanisms, sensible transactions remotely in a secure way. This all is done from a unique program: The Web Browser. - Perhaps the most used and easy to use program The World Wide Web is far away from being a stateless delivery mechanism anymore. It's becoming more and more real-time. It's already widely used for instant messaging, notifications, etc. – -- But.., is it ready for Realtime? We will give an answer to this question later
  4. SIP is the most widely used signaling protocol for VoIP Specified by the IETF Designed to establish and maintain sessions between two or more entities - Is a text based protocol, the way HTTP is - Uses the request/response transaction model - Client requests and server responds - A SIP entity is both client and server. Client when requesting and server when receiving the request - The intelligence is in the endpoints, by means that two SIP endpoints can completely communicate within each other without the need of an intermediary
  5. As an IETF specification , SIP is based on many other existing Internet protocols and specifications, which are used to define characteristics like: - SIP message format - SIP resource format - Authentication methods - Transport layer security methods... It works in conjunction with many other existing protocols in order to provide the many different services that SIP can carries on, although it is only involved in the signaling part of the session.
  6. SIP has a simple and extensible core which defines basically: - how to locate a SIP resource - how to establish an abstract session with one or many SIP resources - how to do this in a secure way Other SIP specifications extend the SIP core in a modular way, defining mechanisms to achieve concret functionalities using SIP.
  7. We see how a user uploads his current location - Specifies a limited duration he will be located in that location. - He can refresh his location (before time expiration) by sending another REGISTER request with same Call-ID header value - He can de-locate (unregister) himself by specifying the server that the uploading location expiration time is 0 (seconds) - he can ask the location server for his actual registrations A single user can upload many locations - desk hardphone, laptop softphone, mobile device softphone. - each registration can have different priorities in order to define the call reception device priority.
  8. 1- Alice makes a NAPTR DNS lookup and acquires the IP address and port of the domain proxy (atlanta.com) 2- She wants to establish a session with bob, from biloxi.com. Sends an INVITE SIP request her proxy. The INVITE message carries an SDP with the description of the media session (listening IP, ports, codecs, etc) 3- The proxy will probably authenticate alice by responding the INVITE request with a negative code, and will attach a HTTP challenge on it. Alice will create a digest authentication and re-send the INVITE, this time with an Authentication header containing the digest 4- atlanta proxy sends the INVITE to bobx sip proxy, who will deliver the invitation to bob. Responses from bob will follow the inverse path of the initial request. 5- Finally bob answer the call (200 OK), indicating the media conditions in the body of the response (which is an sdp). Alice indicated her contact direct location in the Invite request and so does bob in the 200 response, meaning this that folloing SIP communication can be done directly between both peers. 6- Both peers start sending media to the negotiated IP address and ports 7- When one of them decides that the session has to be finished, sends a SIP BYE request indicating his willing for session termination. The other peer acknowledges the termination with a 200 SIP response to the BYE request.
  9. SIP carries network information inside the Messages although it is a is an application layer protocol. Its paiload is not inspected by netowrk routing nodes but by SIP routing ones. A SIP proxy can perfectly receive a SIP INVITE message though UDP, which indicates that the target of the INVITE is to be reached by TCP. There have to be taken several considerations when adopting a transport as a SIP transport due to its nature (reliable or not, size limit, etc) SCTP β†’ Stream Control Transport Protocol. --- Alice sends a INVITE to her proxy using UDP (she wants to talk to bob) Alice's proxy sends the INVITE to bobs Proxy. Biloxy location server finds that bob location is an IP and TCP port, so sends the INVITE via TCP. When responding the (200 OK) to the call, bob indicates his location and specifies that he is listening in a TCP port. This response reaches Alice. This time, the Alice proxy wanted to remain in the path for subsequent request in the session, so it indicated it adding a Record-Route header field to the initial INVITE sent by Alice. Alice then, wants to terminate the session with bob. She sends a BYE message to her proxy using UDP, this message is forwarded to biloxi SIP proxy who inspects the SIP message and sees the message target (Bobs location) with is an SIP and TCP port. Opens then a new TCP connection with bob and relies the BYE message.
  10. +++ Let's see what is reason of the gap.
  11. Gmail, Facebook use this kind of technics The way it is done today
  12. no way to get a full-duplex communication between browser and server +++ WebSocket to the reque!
  13. The WebSocket Protocol - IETF HYBI WG (BiDirectional or Server-Initiated HTTP) - Very recent specification - HTML 5 compliant browsers - managed via JavaScript interface - For a new WebSocket connection, the browsers establishes a HTTP connection with the server and negotiates an β€œupgrade” to a persistent WebSocket connection. This negotiation or β€œhandshake”, provides a full duplex permanent connection between the browser and the server. - The WebSocket connection is directly layered over TCP and generates a minimal overhead - It can transport UTF-8 encoded text and binary payload data.
  14. The WebSocket handshake starts with a HTTP Upgrade request from the client. The Upgrade header field contains the value β€œwebsocket” The server responds with a HTTP (101 Switching Protocols) response if the handshake completed successfully does not define format of the data transported is defined in the handshake. Sec-Web Socket-Protocol ” header field.
  15. This is a example application of websocket. It simply connects to a websocket server (echo.websocket.org). Everything that is sent from the browser, this server sends back again making an 'echo' effect. Source β†’ echo.js Websocket instance (websocket) websocket.addEventListener('message',function(evt){console.log('Message received: '+evt.data)})
  16. Can we use WebSocket for sending SIP? Specifies the 'sip' websocket subprotocol for transporting SIP messages between a WebSocket connection. -Defines new DNS NAPTR service values (SIP+D2W β€œws” / SIPS+D2W β€œwss”) and procedures for SIP entities implementing the WebSocket transport. Makes possible the use of SIP in environments where non other transport connection can be established. Ie: A web browser. But it's not limited to web browsers in any way. Its in its 5th revision since October 21th Specification : Defines new values for the SIP VIA header ('WS'/'WSS') Defines a new uri transport parameter value ('ws') Relaxes the use of 'received' via parameter because it is not useful (as a WebSocket SIP client is not usually a WebSocket SIP server. Responses must be always sent to the existing connection.) and could reveal sensitive information about the internal topology of the Server's network to the client.
  17. latincom2012.jssip.net Register Messages Call to an invalid number.. Conclusion: Is just SIP in the browser
  18. Flash: Plugin required Java Applet: Java required Active X : Ie.., which else uses it? Microsoft Sliverligth ---- Say hello to WebRTC
  19. WebRTC provides the browser with a RTC engine and a JavaScript API in order to allow any web developer the use of such Real Time Communications engine from its web page. Data is sent 'Directly' between browsers. Peer2peer WebRTC abstracts the complexity of the underlaying RTC protocols into a simple JavaScript API. The API, is defined by the W3C (WWW Consistorium) i n collaboration with the IETF , who defines the underlaying used protocols.
  20. 2012 Google acquires GIPs (Global IP solutions) in paying 68M$.. and open sources it as WebRTC VideoEngine AudioEngine Codecs Echo canceller, etc Takes care of packet loss, jitter, delay... GIPS did the Skype VoiceEngine
  21. Interoperation between different browser manufacturers is needed. That's why there must be a consent with minimal mandatory codecs. IETF-85 Atlanta IPR (Intelectual Property Rights)
  22. Those existing specifications are not new or defined by WebRTC. they are already defined, but very poorly implemented by VoIP manufacturers. although there are encouraged. WebRTC mandates security from the ground , and that is a good starting point. As we will see later, actual implementations will need to update security aspects in order to inter operate with WebRTC.
  23. Polling: The other party makes HTTP polling to the web server asking for new invitations WebSocket is the only bidirectional full-duplex communication mechanism in the web browser.
  24. Together they provide a way to set a communication using audio, video and data from any web to other web browsers or any device implementing the technologies used in WebRTC. (Those specified in β€œMedia Session Elements” chapter)
  25. There is a lot of activity in the IETF RTCWeb Working group. Those are the WG documents but there are many others which are not WG documents already. There are covered
  26. SIP in web browsers is possible thanks to SIP over WebSocket specification
  27. How to use SIP as a signaling protocol fro WebRTC - We have got a RTC stack in the browser: WebRTC - We have got a draft which specifies the use of SIP in the browser - How to use SIP as signaling protocol for WebRTC? Let me fix that for you ;)
  28. - SIP stack for the web browser - JavaScript - free software - main author - downloaded with the web page - WS connection with a SIP server ------ By the time we wrote the draft for using SIP over WebSocket, there wasn't (obviously) any implementation out there, so.., we had to make one. This is the story of JsSIP.
  29. Once again, by the time we wrote the SIP over WebSocket draft, there wasn't any SIP server supporting WebSocket, so, we had to make one.
  30. OverSIP fully supports SIP over WebSocket. The perfect SIP Outbound Proxy to be used between JsSIP and any other SIP server. As SIP Outbound Proxy, OverSIP manages WebSocket connections with SIP WebSocket Clients and gives them access to their respective SIP domains through UDP, TCP or TLS-TCP transports.
  31. Adoption of any existing SIP service from the Web. We've got an RTP stack We've got an specification to use sip in web environments We've got implementations already