WebRTC Training Course

Overview

WebRTC is taking the Real Time communications industry by storm.  Learn WebRTC from the people who are developing applications.  Our team of dedicated VoIP/SIP and WebRTC developers and integration experts bring you and your team practical, real world experience.  WebRTC is the biggest revolution in communications since the beginnings of Unifed Communications over 15 years ago.  Get up to speed now and start preparing for the revolution.

What you will learn

Learn the latest developments in WebRTC.  Put Real Time Communications trends in context and understand why WebRTC is enabling a completely new network and application paradigm.

Who Needs to Attend

Software developers and computer programmers with a background in Javascript and SIP/HTTP/Web programming are ideally suited to attend this class.  A knowledge of Real Time communications is ideal, as is a background with RT signaling using SIP.  Experience witn Node.js is helpful but not required.

Prerequisites

Experience with JavaSript is essential.  Web programming experience is helpful.  A background with VoIP/SIP/ Telecommunications is helpful but not a requirement.  Knowledge of TCP/IP and HTTP programming is useful.

Detailed Course Outline

Module One: Introduction to WebRTC

  • What is WebRTC:
  • Next evolution of RT communications
  • PSTN/SS7 – VoIP/SIP – WebRTC/Any Signaling
  • Real Time Communications natively from a web browser
  • WebRTC current vendor support
    • Chrome
    • Firefox
    • Opera
    • Status of other browsers and devices
  •  Standards Process
    • IETF standards track overview
    • Overview of RFCs and emerging internet drafts
    • W3C API standards overview
  • Understanding the legacy of RT Communications
  • PSTN
  • VoIP/SIP
  • WebRTC
  • PSTN Architecture
    • PSTN Equipment
      • Central Office Switches
      • POTS phones
      • PBX
      • Analog and Digital Trunks (T-1, OC-192 Fiber, etc)
      • Conference call media transcoding/mux
      • SS& Signaling infrastructure
    • Isolation of the media plane and the signaling plane
    • Signaling with SS7
    • Media transport with Digital TDM trunks
  • VoIP Architecture
    • VoIP Equipment
      • SIP Server / Soft switch
      • SIP Endpoints (IP phones, etc)
      • VoIP-PSTN Gateways
      • Media Control Unit for Transcoding/conferencing
      • Firewalls
      • Session Border Controllers - SBC
    • Isolation of the media plane and the signaling plane
    • Signaling Options
      • Many early signaling protocols
        • H.323. IAX2, MGCP, SIP
      • Consolidation to SIP in Carrier and Enterprise networks
        • Session Initiation Protocol - SIP
        • Use of Session Description Protocol - SDP
        • SDP/SIP/UDP/IP/Layer 2
        • Implementation of Secure SIP - SIPS
    • Media Transport
      • Encoding of Audio and Video using codecs
      • Transport of Audio and Video using Real Time Protocol – RTP
      • Encryption with SRTP
      • Codec/RTP/UDP/IP/layer 2
    • NAT Traversal Solutions developed for VoIP explained
      • STUN
      • TURN
      • ICE
  • WebRTC Architecture
    • WebRTC Equipment
      • Endpoint: Browser, embedded device (Google Glass, etc)
      • SIP or other Signaling Server(s)
      • Media Control Unit for Transcoding/conferencing
      • WebRTC Gateways – SIP/VoIP – PSTN – Others not yet defined
        • Signaling
        • Media
        • Data
      • Firewalls
      • WebRTC SBC (not yet defined)
    • Isolation of the Media plane and the Signaling plane
    • Signaling plane “agnostic”
    • Four Tasks
      • Media Stream Acquisition
      • Signaling
      • Media Transport
      • “Arbitrary” Data Transport
    • Practical examples, What can you do with WebRTC
    • www.w3.org/TR/webrtc/#simple-peer-to-peer-example
    • simpl.info/dc
    • simpl.info/pc
    • Gesture Control: using Webcam controlled HTML5 Slides
    • ustyme
    • PIPE: File Transfer/Sharing on Facebook
    • Fluke Connect
    • Capiche
    • Be My Eyes
    • Rap Battles

Module Two: WebRTC APIs

  • WebRTC API Flowchart
  • Four Primary Requirements:
    • Acquire Audio and Video from device inputs
    • Establish connection between peers
      • Exchange Offer/Answer
      • createOffer()
      • createAnswer()
      • setLocalDescription()
      • setRemoteDescription()
    • Communicating audio and video
    • Communicating arbitrary data
  • Four primary APIs
  • getUserMedia
    • MediaStreams
  • RTCPeerConnection
    • makes connections and communicates media streams
  • RTCSessionDescription
    • Represents the parameters of a session
  • RTCDataChannel
    • Send and receive “arbitrary” data
  • getUserMedia  -MediaStreams
    • gUM
    • Represent a stream of synchronized media
    • Can contain more than one audio and/or video MediaStream Tracks
    • Obtain a MediaStream with navigator.getUserMedia()
    • javascript examples
    • navigator.getUserMedia(constraints, successCallback, errorCallback)
    • simpl.info/gum
    • Processing video and audio streams
    • Examples
      • gUM + Canvas
      • idevelop.github.com/ascii-camera
      • gUM screencapture
      • Build hangouts using WebRTC
    • Constraints
    • Dynamic constraints through API
    • getUserMedia constraint of audio true only
    • webaudiodemos.appspot.com/Vocoder/index.html
  • RTCPeerConnection API
  • RTCSessionDescription
    • SDP format
    • candidate options
    • codecs, ports, RTP configuration, etc.
  • RTCDataChannel
    • Exchanging Arbitrary data
    • Same API as WebSockets
    • Ultra low latency
    • simpl.info/dc
  • Overview of additional APIs of interest
  • Resources
    • chrome://webrtc-internals
    • adapter.js
    • Code Samples
    • github.com/GoogleChrome/webrtc
    • apprtc.appspot.com

Module Three: WebRTC Architecture

  • Isolation of the Media plane and the Signaling plane
  • Concept of “Arbitrary data” channel
  • Signaling plane “agnostic”
  • Four Tasks
    • Media Stream Acquisition
    • Signaling
    • Media Transport
    • “Arbitrary” Data Transport
  • Media Streams Acquisition
    • internal devices (webcam, mic, etc)
    • Media Transport
    • Inherently peer-to-peer
    • Supported codecs defined, including G.711, Opus, V8
    • secure transmission options
    • Requires Secure RTP or DTLS for transport
    • What to secure?
    • DTLS implementation Examples
  • Signaling
    • Signaling Agnostic: You Decide
    • "BYOS"; Bring You Own Signaling!
    • JavaScript Establishment Protocol JSEP
    • Need to exchange Session Description – SDP
    • Requirement to exchange SDP media descriptions in offer/answer
    • Alternative proposals
      • Object RTC (ORTC API) – Not standardized
    • Understanding the role of Session Description Protocol RFC4566
      • Why SDP?
      • Unified SDP for WebRTC
      • Limitation of SDP in WebRTC architecture
      • number of m lines
      • conference calling
      • traditional media mixer conference server
      • Single RTP audio stream
      • Cannot adjust, mute, enhance individual streams
      • challenge of  media relay server
      • SSRC values in single RTP stream
      • need for server logic to re-invite with new multi-m line SDP
    • Using Session Description Protocol
      • codec selection
      • peer to peer routing
      • encryption and authentication
      • Bandwidth management
      • Offer / Answer Exchange
      • createOffer
      • RFC 3264 offer
      • Complete set of capabilities
      • gotOffer
      • createAnswer
      • SDP answer
      • Codec, RTP, RTCP options plus ICE candidates
      • Negotiated set of capabilities
      • gotAnswer
      • gotRemoteStream
      •  RTCSessionDescription object
      • SDP failure requirement for DOMError object
    • Application specific signaling
    • Isolation of browser from signaling
    • Possible Signaling approaches:
    • SIP over WebSockets
    • RFC 7118: WebSocket Protocol as a Transport for the Session Initiation Protocol (SIP)
    • Signaling with Node and Socket.io
    • Socket.io uses WebSocket with fallbacks
    • jSIP
    • sip-js
    • QoffeeSIP
    • sipML5
    • Call Control API
    • GSMA/OMA extending RCS-s API to include WebRTC support
    • XMPP/Jingle
      • Interoperability with XMPP clients
      • XMPP server with XMPP WebSocket transport
    • XHR
      • no special signaling infrastructure
      • web server with proprietary protocol
    • JSON
    • Proprietary signaling
  • Connecting and Sending Data. Peer-to-peer Data API
  • RTCDataChannel
    • sending application data over peer to peer connection
    • Ultra low latency requirements
    • gaming communications
    • Signaling considerations
    • MediaStream Signaling options plus
    • Inside Data Channel
    • latency, NAT traversal, privacy considerations
    • WebSocket or web server with proprietary implementation for Data Channel establishment
    • API similarity to WebSockets
    • Latency considerations
    • Reliability or unreliable considerations
    • When does unreliable make sense?
    • RTCPeerConnection
    • ondatachannel
    • receiveChannel
    • createDataChannel
    • sendChannel
    • simpl.info/dc

Module Four: IPv4 & NAT

  • IPv4 vs IPv6 addressing
  • Impact of Firewalls
  • Web Proxy Server considerations
  • How NATs function
    • How NATs cause Peer to Peer applications to break
    • Impact on SIP message
    • Impact on SDP message
  • Nat Traversal solutions built into access devices
    • How these solutions can break your “solution”!
  • IPv6 Address space solution for NAT (hint: Don’t NAT!)
  • Public vs Private IPv4 addresses
  • IETF NAT Traversal Architecture
  • ICE – Interactive Connectivity Establishment
    • Architecture for STUN and TURN
    • Path determination
  • STUN, TURN, and ICE support
  • STUN
    • Session Traversal Utilities for NAT
    • Punching hole in the NAT
    • Contacting the STUN server to determine Public IP and Port information
    • Relatively Free to connect
    • Firewall considerations
  • TURN
    • Fallback for STUN
    • Relay Server in the Cloud
    • Cost and delay considerations
    • Bandwidth and Server requirements
    • Availability
  • Examples
    • stun.l.google.com:19302
    • rfc5766-turn-server
    • deploying in Amazon cloud
    • restund
  • Quality of Service
    • IETF support for Q0S in TCP/IP
    • Integration of DiffServ with Ethernet (LAN) and MPLS(WAN)
    • Use of DSCP
    • Support for DiffServ in WebRTC using DSCP
    • Practical considerations when considering DiffSer
      • LAN/WAN architecture
      • IT support
      • Carrier support
      • Internet connectivity or VPN
  • Security
    • Defining WebRTC security
    • WebRTC Security Architecture
    • Brower Permissions for accessing webcam, audio, etc
    • WebRTC Threat Model and Attacks
    • Signaling Threats and Attacks
    • API Attacks
    • Implementing DTLS
      • DTLS SRTP Key Agreement
      • Client / Server
    • Implementing SRTP
      • Secure Profile of RTP –SRTP
      • Encryption and Authentication
      • Key Exchange and Key Management
      • SDP Security Descriptions
    • WebRTC impacts on browser security
    • using HTTPS for signaling

View Schedule