An hour with WebRTC FIC UDC

on

  • 1,672 views

 

Statistics

Views

Total Views
1,672
Slideshare-icon Views on SlideShare
1,530
Embed Views
142

Actions

Likes
1
Downloads
49
Comments
0

2 Embeds 142

http://www.scoop.it 134
https://twitter.com 8

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

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
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    An hour with WebRTC FIC UDC An hour with WebRTC FIC UDC Presentation Transcript

    • An hour with WebRTC
    • About Quobis● Working in UC since 2006● Focus on VoIP since 2008● Addressing SP and enterprise markets● HQ in Vigo (Spain)● Free softwareMeet the team
    • About me● FIC student● Fran tutored my final year project - "DoS attacks in VoIP"● Last year: VoIP Engineer● Now: Security EngineerJesús PerezSecurity Engineer@jesusprubiojesus.perez@quobis.com
    • About me● FIC student● Fran tutored my final year project - "DoS attacks in VoIP"● Last year: VoIP Engineer● Now: Security EngineerQuobis is hiring!Jesús PerezSecurity Engineer@jesusprubiojesus.perez@quobis.com
    • Index● Definition● Real examples● Signaling○ VoIP and SIP in 3 slides● QoffeeSIP● Final year project proposals
    • Definition● WebRTC (Web Real-Time Communication) is an API definitionbeing drafted by the World Wide Web Consortium (W3C) toenable browser to browser applications for voice calling, videochat and P2P file sharing without plugins.http://en.wikipedia.org/wiki/WebRTC● WebRTC is a free, openproject that enables webbrowsers with Real-TimeCommunications (RTC)capabilities via simpleJavascript APIs.http://www.webrtc.org
    • Definition. Key benefits● Browser is an omnipresent application● Users download the client in each access -> no versions issues● No plugins needed (Flash, Java, Activex, Gtalk plugin, Skype forFacebook plugin, etc.)● Use of standards -> security by default● Multi-platform... and ¡multi-devices!
    • Definition. Main actors● IETF RTCWeb Working Group○ WebRTC 1.0 Real-time CommunicationBetween Browsershttp://www.w3.org/TR/webrtc● W3C WebRTC○ draft-ietf-rtcweb-audio-01○ draft-ietf-rtcweb-data-channel-04○ draft-ietf-rtcweb-jsep○ draft-ietf-rtcweb-rtp-usage○ draft-ietf-rtcweb-use-cases-and-requirements-10○ ...http://datatracker.ietf.org/wg/rtcweb
    • Definition. Main actors● Standard supporters● Standard contributors● Early implementators● Standard detractors● Arrived late● CU-RTC-WEB (Microsoft proposal)
    • Definition. Video codec fightVP8H.264vs... and VoIP, telepresence andvideoconference vendors● Since a technical poing of view there arent enough differencesto complaint● Most of devices already have hardware acceleration for H-264(Android ones included)● But VP8 is free licensed and H.264 not.
    • Definition. Video codec fightVP8H.264vs... and VoIP, telepresence andvideoconference vendors● Since a technical poing of view there arent enough differencesto complaint● Most of devices already have hardware acceleration for H-264(Android ones included)● But VP8 is free licensed and H.264 not.
    • Definition. Implementations
    • Definition. Another implementations● Googles WebRTC implementation is a library written in C++included in V8 Javascript engine● Then you could download it and compile it wherever you want/can● Moreover con could always write your own implementation of theAPI● So there are applications that support it without a browser (ie:Android and iOS apps)
    • Definition. How it works?DTLS-SRTP FlowSDP OfferSDP AnswerICEgatheringprocess ICEgatheringprocessSignaligTraffic over UDP● The use of SDP protocol is being discussed now.
    • Definition. How it works?
    • Definition. How it works?● Google says (Gtalk) that only about 8% of connections need arelay server.
    • Definition. Core architecture
    • Definition. Core architecture
    • Definition. Javascript API does the magic● GetUserMedia: Allows access to local camera, microphone, etc.● RTCPeerConnection: Allows sending a local stream and toreceive a remote stream● DataChannel: Allows P2P file sharing between two browsers
    • Real examples. DemosReference demo: https://apprtc.appspot.com/
    • Real examples. DemosQoffeeSIP demo: http://webrtc.quobis.com/
    • Real examples. DemosFirefox
    • Real examples. DemosChess game: http://www.spacegoo.com/chess/
    • Real examples. DemosLynckia multi-conference: http://lynckia.com/
    • Real examples. DemosLynckia Guest Who!: http://lynckia.com/
    • Real examples. DemosScreensharing with Chrome tab.capture: Blog post
    • Real examples. DemosDataChannel demo: https://webrtc-experiment.appspot.com/DataChannel/
    • Real examples. Comming soon ...
    • Real examples. Comming soon ...
    • Real examples. Comming soon ...
    • Real examples. Comming soon ...
    • SignalingThere is NO signaling method defined!● For our sake says IETF... -> flexibility
    • SignalingThere is NO signaling method defined!● For our sake says IETF... -> flexibility
    • Signaling. JSON, XMPP, third party API, etc.● The existence of a media relay server is optional in all cases.
    • Signaling. VoIP in 2 slides● Voice over Internet Protocol● Main standard protocols
    • Signaling. VoIP in 2 slides. SIP● Functions○ Users location○ Users availability○ Client capabilities○ Session establishement○ Session management● Main type of requests○ REGISTER○ OPTIONS○ INVITE○ ACK○ BYE● Responses: 1xx, 2xx, 3xx, 4xx, 5xx, 6xxINVITE sip: bob@biloxi.com SIP/2.0Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhdsMaxForwards: 70To: Bob <sip: bob@biloxi.com>From: Alice <sip: alice@atlanta.com>;tag=1928301774CallID: a84b4c76e66710@pc33.atlanta.comCSeq: 314159 INVITEContact: <sip: alice@pc33.atlanta.com>ContentType: application/sdpContentLength: 142
    • Signaling. SIP over websockets● Websockets client only can talks with a websocket server.● The existence of a relay media server is optional in all cases.● Most SIP servers (softswitches and proxies) include the SIPwebsockets gateway.
    • Signaling. SIP over websockets● Websockets client only can talks with a websocket server.● The existence of a relay media server is optional in all cases.● Most SIP servers (softswitches and proxies) include the SIPwebsockets gateway.
    • Signaling. SIP over websocketsTCP connection openGET /sipserver HTTP/1.1Host: server.example.comUpgrade: websocketConnection: UpgradeSec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==Sec-WebSocket-Protocol: sipSec-WebSocket-Version: 13Origin: http://talsetup.quobis.comHTTP/1.1 101 Switching ProtocolsUpgrade: websocketConnection: UpgradeSec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=Sec-WebSocket-Protocol: sipSIP Messages (*)TCP connection closedWS Close message(*) In this case we send SIP messages, but we could send any other protocol.
    • Signaling. SIP over websockets● The WebSocket Protocol as a Transport for the Session InitiationProtocol (SIP) - draft-ietf-sipcore-sip-websocket-08● Servers○ Kamailio○ Asterisk○ OverSIP (Outbound proxy)○ Privative solutions● Clients (stacks)○ QoffeeSIP○ JsSIP○ sipML5○ sip-js○ Crocodile RCS (Comming soon)○ Privative solutions
    • QoffeeSIP● QoffeeSIP is a complete Javascript SIP stack that can be used ina website to exploit all the multimedia capabilities of WebRTCtechnology.○ Developed in CoffeeScript (simple syntax).○ Really tiny (< 32 KB).○ Video/audio calls (WebRTC).○ SIP over Websockets protocol (and secure).○ SIP Outbound and GRUU protocols.○ Design focused in simplicity, having in mind the final user.○ Some examples of use included.○ Open source (LGPL).● Tryit: http://webrtc.quobis.com/● Use it: QuickStart guide
    • QoffeeSIP
    • SIPPO● Enterprise targeted (rich communications) webphone based onQoffeeSIP.● Just right now at Las Vegas ...
    • SIPPO● Enterprise targeted (rich communications) webphone based onQoffeeSIP.● Just right now at Las Vegas ...
    • WebRTC+SIP as access method new features>SIP over WS/RESTDTLS - SRTPSIP over UDP/TCP/TLSRTP/SRTPSignaling & mediainterworking● Direct application for telephony: using the browser as a phone● We must interwork transport, signaling and media protocols○ The gap
    • WebRTC+SIP as access method. The gap new fe● These slides are taken from Victor Pascual conference referenced at the end.
    • WebRTC+SIP as access method. The gap new fe
    • WebRTC+SIP as access method. The gap newfeatures>
    • WebRTC+SIP as access method. The gap newfeatures>
    • WebRTC+SIP as access method. The gap newfeatures>
    • WebRTC+SIP as access method. The gap newfeatures>
    • Dont get lost in this mess!
    • Dont get lost in this mess!
    • Final year project. Real apps.
    • Final year project. Real apps.
    • Final year project. Real apps. IdentityCall
    • Final year project. Real apps. IdentityCall
    • Final year project. Real apps. IdentityCall
    • Final year project. Proposals(Content deleted from public slides)
    • Questions?Thanks!Jesús PerezSecurity Engineer@jesusprubiojesus.perez@quobis.com
    • References● Justin Uberti - "WebRTC: Real-time Audio/Video and P2P in HTML5"[Google I/O 2012]● Victor Pascual - "WebRTC and VoIP: bridging the gap" [Kamailio WorldConference 2013]● Iñaki Baz & Jose Luis Millán - "Word Wide SIP" [VoIP2Day 2012]● Saúl Ibarra - "SIP is-hard, lets go shopping!" [FOSDEM 2013]● HTML5Rocks - "Getting Started with WebRTC"● Tsahi Levent-Levi - "HTML, SIP and the Missing Link (WebRTC)"● Quobis - http://www.quobis.com/● Planet Quobis - http://planet.quobis.com/