New Course Announcement! ITMD 545 Web Real-Time Communications

Date

You may have noticed a new class starting this spring: ITMD 545 Web Real-Time Communications (WebRTC). This class explores the latest real-time voice and video technology built in to web browsers such as Chrome and Firefox. WebRTC, Web Real-Time Communications, is a new part of the HTML5 standard that allows web developers to add voice and video communication to their apps and sites without a download, plugin, or Adobe flash. This hands-on course will teach the technology and theory of WebRTC starting with Internet basics and the TCP/IP stack, all the way up to voice and video codecs. Students will explore the underlying protocols using Wireshark packet captures and do JavaScript programming exercises to develop their own WebRTC-enabled site. Course details are listed below.

Syllabus

Course Number: ITMD 545

Course Name: WebRTC

Term: Spring 2015/Fall 2015

Faculty Data:

Name: Alan Johnston

Email: alan.b.johnston@gmail.com

Course Catalog Description:

This course covers a set of protocols, architectures and APIs designed to enable browser-to-browser real-time communication of voice, video and data. Students will learn to apply basic technologies including WebSockets, HTTP, HTML5, Web Sockets, NAT, STUN, TURN and ICE to ensure two-way real-time communication is established using the WebRTC API’s and architectures. Students will use JavaScript and development environments to create basic data, and media applications based on the WebRTC technologies and will record the impact of their applications on the performance and behavior of the networks that carry them.

Prerequisites: ITMO 540/ ITMO 440 or equivalent; ITMO 456 or equivalent; ITMD 411; ITM 461

Prerequisites/Co-requisites: ITMO 461

Credit: 3

Schedule of Topics: See last page

Course Objectives: The goal of the course is to provide a technical framework in which the student can understand, analyze and develop web-based, browser-to-browser, real-time applications and to foster innovative thinking and development in the field of real-time communications, based on hands-on work and an understanding of past innovation and development.

Course Outcomes: The successful student will be able to create simple WebRTC-based applications using javascript, node.js, sockets.io, and the APIs of the w3c/IETF WebRTC joint project. Further the successful student will be able to use protocol analysis tools to analyze the message flows between the network elements that support their applications, including STUN and TURN servers, Web servers and browsers; draw message sequence charts to aid in the analysis; use this analysis to verify correct behavior and to isolate trouble. The successful student will be able to identify the media streams and signaling messages associated with a WebRTC-based application and will be able to analyze the contents of both. The successful student will have the necessary knowledge and skills to work in the field of Web-based telecommunications at an engineering level.

Course Notes: Lecture notes are available on Blackboard. The student is expected to take notes in class, and to use the posted notes as a teaching aid and guide to his/her studies.

Textbook: WebRTC APIs and RTCWeb Protocols of the HTML5 Real-Time Web ; Alan B. Johnston and Daniel C. Burnett; Third Edition

Assignments: There will be weekly homework and lab assignments. There will also be periodic project assignments. There will be a final project report and project presentation and demonstration for an external technical audience consisting of technical professionals, engineers, technologists, entrepreneurs and researchers.

Schedule of topics:

Each topic will be covered over a period of four weeks and will include a study of the specifications that are published variously by IETF, W3C and other specifications organizations. Each topic will also be associated with lab assignments. Students will also work on a term project that incorporates the methods and protocols of WebRTC to create an application that uses these methods and protocols.

  • Introduction to Web Real-Time Communications:
    • WebRTC browsing model, architectures, interoperability with other communications protocols and networks
    • Multimedia streams in WebRTC
    • Multi-party sessions in WebRTC
    • WebRTC standards
    • Related lab
  • Using WebRTC
    • Set up a WebRTC Session: obtaining local media, setting up the peer connection, exchanging media or data
    • Closing the connection
    • Example implementations
    • Related lab
  • WebRTC Peer-to-Peer Media
    • Media Flows with WebRTC
    • Media Flows without WebRTC
    • NAT
    • TURN
    • STUN
    • ICE
    • Firewalls
    • Related lab
  • WebRTC Signaling
    • What is signaling and what are the special problems associated with it.
    • Signaling transport
    • HTTP Transport
    • WebSocket Transport
    • Signaling Protocols
      • Signaling State Machine
      • Signaling Identity
      • HTTP Polling
      • WebSocket Proxy
      • Google App Engine Channel API
      • SIP over WebSockets
      • Jingle over Web Sxockets
      • Data Channel proprietary signaling
      • Data Channel using an overlay
    • Related Labs
  • Project presentations and demonstrations