• Save
IEEE latincom2012
Upcoming SlideShare
Loading in...5
×
 

IEEE latincom2012

on

  • 1,722 views

Bridging The Gap Between SIP and the WWW. The use of SIP in WebRTC

Bridging The Gap Between SIP and the WWW. The use of SIP in WebRTC

Statistics

Views

Total Views
1,722
Views on SlideShare
1,659
Embed Views
63

Actions

Likes
4
Downloads
0
Comments
3

2 Embeds 63

https://twitter.com 62
http://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

13 of 3 Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • [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
  • - 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
  • 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
  • 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
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • +++ Let's see what is reason of the gap.
  • Gmail, Facebook use this kind of technics The way it is done today
  • no way to get a full-duplex communication between browser and server +++ WebSocket to the reque!
  • 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.
  • 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.
  • 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)})
  • 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.
  • latincom2012.jssip.net Register Messages Call to an invalid number.. Conclusion: Is just SIP in the browser
  • Flash: Plugin required Java Applet: Java required Active X : Ie.., which else uses it? Microsoft Sliverligth ---- Say hello to WebRTC
  • 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.
  • 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
  • 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)
  • 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.
  • 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.
  • 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)
  • 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
  • SIP in web browsers is possible thanks to SIP over WebSocket specification
  • 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 ;)
  • - 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.
  • 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.
  • 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.
  • 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

IEEE latincom2012 IEEE latincom2012 Presentation Transcript

  • 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.netIEEE 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 SoftwareIEEE 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 AgentIEEE 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 sessionIEEE 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 protocolIEEE 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 OKIEEE 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 OKIEEE 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 ➔ MultihomingIEEE 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 WWWIEEE 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-TimeIEEE 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 clientIEEE 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 platformsIEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • HTTP based Web Real-Time (recap) ➔ Overhead ➔ Bandwidth waste ➔ Battery problem in mobile devicesIEEE 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 infrastructureIEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • WebSocket Opening HandshakeIEEE 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 ➔ onmessageIEEE 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 serverIEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • WebSocket Implementation in Web Browsers Source: http://caniuse.com/websocketsIEEE 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 WebSocketIEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • WebSocket as a Transport for SIP Example I (cont.) ➔ WebSocket Opening HandshakeIEEE 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 connectionIEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • WebSocket as a Transport for SIP Example I (cont.) ➔ Response to REGISTERIEEE 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.comIEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • WebSocket as a Transport for SIP (cont.) ➔ Devices which cant 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 SIPIEEE 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 wayIEEE 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/DATAIEEE 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 requiredIEEE 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.orgIEEE 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 AVCIEEE 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 exchangeIEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • WebRTC Multimedia Session OFFER / ANSWER HTML/CSS/JavaScript HTML/CSS/JavaScript SRTP/DATAIEEE 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 STUNIEEE 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 bindingsIEEE 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 neededIEEE 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 CODECSIEEE 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 applicationIEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • WebRTC Multimedia Session (cont.) ➔ We are in a browser ➔ HTTP [long] polling ➔ Flash ➔ WebSocketIEEE 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/webrtcIEEE 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 RequirementsIEEE 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 availableIEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • SIP Signaling for WebRTC ➔ Why ➔ Open standard ➔ Mature ➔ Widely deployed ➔ Reuse existing infrastructureIEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • SIP Signaling for WebRTC (cont.) ➔ How ➔ draft-ietf-sipcore-sip-websocket ➔ ImplementationsIEEE 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/JsSIPIEEE 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 SIPIEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • JsSIP API User Agent CreationIEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • JsSIP API User Agent Callback DefinitionIEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • JsSIP API Outbound CallsIEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • JsSIP API Instant MessagingIEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • Other Implementations ➔ SIPML5 ➔ http://sipml5.orgIEEE 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, etcIEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • OverSIP ➔ SIP Proxy with WebSocket transport ➔ http://oversip.net ➔ https://github.com/versatica/OverSIPIEEE LATINCOM 2012 Bridging the gap between SIP and The WWW
  • Other Implementations ➔ Kamailio ➔ http://www.kamailio.org ➔ Asterisk ➔ http://www.asterisk.orgIEEE 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.netIEEE 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.netIEEE LATINCOM 2012 Bridging the gap between SIP and The WWW