WebRTC Blueprints


Book Description

This book is a step-by-step project-based guide that aims to teach you how to develop your own web applications and services with WebRTC in a concise, practical manner. This book will be perfect for you if you are a WebRTC developer and want to build complex WebRTC applications and projects, or if you want to gain practical experience in developing web applications, advanced WebRTC media handling, server and client signaling, call flows, or third-party integration. It is essential to have prior knowledge of building simple applications using WebRTC.




Real-Time Communication with WebRTC


Book Description

Deliver rich audio and video real-time communication and peer-to-peer data exchange right in the browser, without the need for proprietary plug-ins. This concise hands-on guide shows you how to use the emerging Web Real-Time Communication (WebRTC) technology to build a browser-to-browser application, piece by piece. The authors’ learn-by-example approach is perfect for web programmers looking to understand real-time communication, and telecommunications architects unfamiliar with HTML5 and JavaScript-based client-server web programming. You’ll use a ten-step recipe to create a complete WebRTC system, with exercises that you can apply to your own projects. Tour the WebRTC development cycle and trapezoid architectural model Understand how and why VoIP is shifting from standalone functionality to a browser component Use mechanisms that let client-side web apps interact with browsers through the WebRTC API Transfer streaming data between browser peers with the RTCPeerConnection API Create a signaling channel between peers for setting up a WebRTC session Put everything together to create a basic WebRTC system from scratch Learn about conferencing, authorization, and other advanced WebRTC features




Real-Time Communication with WebRTC


Book Description

Deliver rich audio and video real-time communication and peer-to-peer data exchange right in the browser, without the need for proprietary plug-ins. This concise hands-on guide shows you how to use the emerging Web Real-Time Communication (WebRTC) technology to build a browser-to-browser application, piece by piece. The authors’ learn-by-example approach is perfect for web programmers looking to understand real-time communication, and telecommunications architects unfamiliar with HTML5 and JavaScript-based client-server web programming. You’ll use a ten-step recipe to create a complete WebRTC system, with exercises that you can apply to your own projects. Tour the WebRTC development cycle and trapezoid architectural model Understand how and why VoIP is shifting from standalone functionality to a browser component Use mechanisms that let client-side web apps interact with browsers through the WebRTC API Transfer streaming data between browser peers with the RTCPeerConnection API Create a signaling channel between peers for setting up a WebRTC session Put everything together to create a basic WebRTC system from scratch Learn about conferencing, authorization, and other advanced WebRTC features




Programming WebRTC


Book Description

Build your own video chat application - but that's just the beginning. With WebRTC, you'll create real-time applications to stream any kind of user media and data directly from one browser to another, all built on familiar HTML, CSS, and JavaScript. Power real-time activities like text-based chats, secure peer-to-peer file transfers, collaborative brainstorming sessions - even multiplayer gaming. And you're not limited to two connected users: an entire chapter of the book is devoted to engineering multipeer WebRTC apps that let groups of people communicate in real time. You'll create your own video conferencing app. It's all here. WebRTC is an API exposed in all modern web browsers. After almost a decade of development, the WebRTC specification was finalized, and this book provides faithful coverage of that finalized specification. You'll start by building a basic but complete WebRTC application for video chatting. Chapter by chapter, you'll refine that app and its core logic to spin up new and exciting WebRTC-powered apps that will have your users sharing all manner of data with one another, all in real time. No third-party libraries or heavy downloads are required for you or your users: you'll be writing and strengthening your knowledge of vanilla JavaScript and native browser APIs. You'll learn how to directly connect multiple browsers over the open internet using a signaling channel. You will gain familiarity with a whole set of Web APIs whose features bring WebRTC to life: requesting access to users' cameras and microphones; accessing and manipulating arbitrary user files, right in the browser; and web storage for persisting shared data over the life of a WebRTC call. Like any Web API, WebRTC doesn't enjoy a perfect implementation in any browser. But this book will guide you in writing elegant code to the specification, with backward-compatible fallback code for use in almost all modern browsers. Use WebRTC to build the next generation of web applications that stream media and data in real time, directly from one user to another - all by working in the browser. What You Need: Readers need a text editor, an up-to-date copy of Chrome or Firefox, and a POSIX-style command-line shell. They'll also need to install a little bit of open-source software, especially Node.js. All necessary setup is covered in full in the book's introductory chapter.




High Performance Browser Networking


Book Description

How prepared are you to build fast and efficient web applications? This eloquent book provides what every web developer should know about the network, from fundamental limitations that affect performance to major innovations for building even more powerful browser applications—including HTTP 2.0 and XHR improvements, Server-Sent Events (SSE), WebSocket, and WebRTC. Author Ilya Grigorik, a web performance engineer at Google, demonstrates performance optimization best practices for TCP, UDP, and TLS protocols, and explains unique wireless and mobile network optimization requirements. You’ll then dive into performance characteristics of technologies such as HTTP 2.0, client-side network scripting with XHR, real-time streaming with SSE and WebSocket, and P2P communication with WebRTC. Deliver superlative TCP, UDP, and TLS performance Speed up network performance over 3G/4G mobile networks Develop fast and energy-efficient mobile applications Address bottlenecks in HTTP 1.x and other browser protocols Plan for and deliver the best HTTP 2.0 performance Enable efficient real-time streaming in the browser Create efficient peer-to-peer videoconferencing and low-latency applications with real-time WebRTC transports




Learning WebRTC


Book Description

The book begins by teaching you how to capture audio and video streams from the browser using the Media Capture and Streams API. You will then create your first WebRTC application capable of audio and video calling. The book will also give you in-depth knowledge about signaling and building a signaling server in Node.js. While being introduced to the RTCDataChannel object, you will learn how it relates to WebRTC and how to add text-based chat to your application. You will also learn to take your application further by supporting multiple users through different technologies and scale its performance and security. This book will also cover several theories using full mesh networks, partial mesh networks, and multipoint control units. By the end of this book, you will have an extensive understanding of real-time communication and the WebRTC protocol and APIs.




Webrtc


Book Description

WebRTC, Web Real-Time Communications, is revolutionizing the way web users communicate, both in the consumer and enterprise worlds. WebRTC adds standard APIs (Application Programming Interfaces) and built-in real-time audio and video capabilities and codecs to browsers without a plug-in. With just a few lines of JavaScript, web developers can add high quality peer-to-peer voice, video, and data channel communications to their collaboration, conferencing, telephony, or even gaming site or application. New for the Third Edition The third edition has an enhanced demo application which now shows the use of the data channel for real-time text sent directly between browsers. Also, a full description of the browser media negotiation process including actual SDP session descriptions from Firefox and Chrome. Hints on how to use Wireshark to monitor WebRTC protocols, and example captures are also included. TURN server support for NAT and firewall traversal is also new. This edition also features a step-by-step introduction to WebRTC, with concepts such as local media, signaling, and the Peer Connection introduced through separate runnable demos. Written by experts involved in the standardization effort, this book contains the most up to date discussion of WebRTC standards in W3C and IETF. Packed with figures, example code, and summary tables, this book is the ultimate WebRTC reference. Table of Contents 1 Introduction to Web Real-Time Communications 1.1 WebRTC Introduction 1.2 Multiple Media Streams in WebRTC 1.3 Multi-Party Sessions in WebRTC 1.4 WebRTC Standards 1.5 What is New in WebRTC 1.6 Important Terminology Notes 1.7 References 2 How to Use WebRTC 2.1 Setting Up a WebRTC Session 2.2 WebRTC Networking and Interworking Examples 2.3 WebRTC Pseudo-Code Example 2.4 References 3 Local Media 3.1 Media in WebRTC 3.2 Capturing Local Media 3.3 Media Selection and Control 3.4 Media Streams Example 3.5 Local Media Runnable Code Example 4 Signaling 4.1 The Role of Signaling 4.2 Signaling Transport 4.3 Signaling Protocols 4.4 Summary of Signaling Choices 4.5 Signaling Channel Runnable Code Example 4.6 References 5 Peer-to-Peer Media 5.1 WebRTC Media Flows 5.2 WebRTC and Network Address Translation (NAT) 5.3 STUN Servers 5.4 TURN Servers 5.5 Candidates 6 Peer Connection and Offer/Answer Negotiation 6.1 Peer Connections 6.2 Offer/Answer Negotiation 6.3 JavaScript Offer/Answer Control 6.4 Runnable Code Example: Peer Connection and Offer/Answer Negotiation 7 Data Channel 7.1 Introduction to the Data Channel 7.2 Using Data Channels 7.3 Data Channel Runnable Code Example 7.3.1 Client WebRTC Application 8 W3C Documents 8.1 WebRTC API Reference 8.2 WEBRTC Recommendations 8.3 WEBRTC Drafts 8.4 Related Work 8.5 References 9 NAT and Firewall Traversal 9.1 Introduction to Hole Punching 9.3 WebRTC and Firewalls 9.3.1 WebRTC Firewall Traversal 9.4 References 10 Protocols 10.1 Protocols 10.2 WebRTC Protocol Overview 10.3 References 11 IETF Documents 11.1 Request For Comments 11.2 Internet-Drafts 11.3 RTCWEB Working Group Internet-Drafts 11.4 Individual Internet-Drafts 11.5 RTCWEB Documents in Other Working Groups 11.6 References 12 IETF Related RFC Documents 12.1 Real-time Transport Protocol 12.2 Session Description Protocol 12.3 NAT Traversal RFCs 12.4 Codecs 12.5 Signaling 12.6 References 13 Security and Privacy 13.1 Browser Security Model 13.2 New WebRTC Browser Attacks 13.3 Communication Security 13.4 Identity in WebRTC 13.5 Enterprise Issues 14 Implementations and Uses INDEX ABOUT THE AUTHORS




Getting Started with WebRTC


Book Description

The book will follow a step-by-step tutorial approach to construct an application that allows video conferencing and calls between two browsers and a system for sharing files among a group.This book is ideal for developers new to the WebRTC standards who are interested in adding sensor-driven, real-time, peer-to-peer communication to their web applications. You will only need basic experience with HTML and JavaScript.




JavaScript by Example


Book Description

A project based guide to help you get started with web development by building real-world and modern web applications About This Book Learn JavaScript from scratch by building clones of popular web applications Understand the core concepts and techniques surrounding JavaScript with this power-packed hands-on guide Explore modern JavaScript frameworks and libraries such as Node, React and Webpack Who This Book Is For The target audience for this book is developers with little or basic knowledge of working with JavaScript. If you are an emerging web developer with experience in building static web pages using HTML and CSS, this book will teach you to add JavaScript elements to make your website interactive and dynamic. What You Will Learn A strong understanding of web application development with JavaScript and ES6. A firm foundation on which to master other JavaScript frameworks and libraries. Write maintainable and scalable code by organizing functions into modules. Importance of tools such as Node, NPM, Babel, and Webpack in Front-end development. Work with real-time data such as incoming video streams, texts, and so on Integrate React with JavaScript to build large-scale applications. Utilize Redux to manage data across React components and greatly speed up the development process In Detail JavaScript is the programming language that all web developers need to learn. The first item on our JavaScript to-do list is building g a To-do list app, which you'll have done by the end of the first chapter. You'll explore DOM manipulation with JavaScript and work with event listeners. You'll work with images and text to build a Meme creator. You will also learn about ES (ECMAScript) classes, and will be introduced to layouts using the CSS3 Flexbox. You'll also develop a responsive Event Registration form that allows users to register for your upcoming event and use charts and graphics to display registration data. You will then build a weather application, which will show you different ways perform AJAX requests and work with dynamic, external data. WebRTC enables real-time communication in a web browser; you'll learn how to use it when you build a real-time video-call and chat application later in the book. Towards the end of the book, you will meet React, Facebook's JavaScript library for building user interfaces. You'll throw together a blog with React, and get a feel for why this kind of JavaScript framework is used to build large-scale applications. To make your blog more maintainable and scalable, you'll use Redux to manage data across React components. Style and approach This project-based guide will teach you all the facets of JavaScript through real-world app examples.




Mastering FreeSWITCH


Book Description

Master the art of advanced VoIP and WebRTC communication with the most dynamic application server, FreeSWITCH About This Book Forget the hassle - make FreeSWITCH work for you Discover how FreeSWITCH integrates with a range of tools and APIs From high availability to IVR development use this book to become more confident with this useful communication software Who This Book Is For SysAdmins, VoIP engineers – whoever you are, whatever you're trying to do, this book will help you get more from FreeSWITCH. What You Will Learn Get to grips with the core concepts of FreeSWITCH Learn FreeSWITCH high availability Work with SIP profiles, gateways, ITSPs, and Codecs optimization Implement effective security on your projects Master audio manipulation and recording Discover how FreeSWITCH works alongside WebRTC Build your own complex IVR and PBX applications Connect directly to PSTN/TDM Create your own FreeSWITCH module Trace SIP packets with the help of best open source tools Implement Homer Sipcapture to troubleshoot and debug all your platform traffic In Detail FreeSWITCH is one of the best tools around if you're looking for a modern method of managing communication protocols through a range of different media. From real-time browser communication with the WebRTC API to implementing VoIP (voice over internet protocol), with FreeSWITCH you're in full control of your projects. This book shows you how to unlock its full potential – more than just a tutorial, it's packed with plenty of tips and tricks to make it work for you. Written by members of the team who actually helped build FreeSWITCH, it will guide you through some of the newest features of version 1.6 including video transcoding and conferencing. Find out how FreeSWITCH interacts with other tools and APIs, learn how to tackle common (and not so common) challenges ranging from high availability to IVR development and programming advanced PBXs. Great communication functionality begins with FreeSWITCH – find out how and get your project up and running today. Style and approach Find out how it works, then put your knowledge into practice - that's how this advanced FreeSWITCH guide has been designed to help you learn. You'll soon master FreeSWITCH and be confident using it in your projects.