As a web developer today, you've got almost everything you need to build
a browser based communication service. To start with, you can build a
good looking and responsive user interface and play audio and video
natively in the browser. For power under the hood, the web platform
offers you networking APIs so you can find who you want to communicate
with and decide how you want to communicate - voice, video, ...?
However, once you have found who you want to communicate with, and have
decided how to communicate, one tiny detail remains. How do you get the
bits of media data from you camera and/or microphone into the browser
and over the network to the other side. Unless you're planning to use
some proprietary plug-ins or spend quite a lot of time writing your own
- you can't.
WebRTC aims to change this by introducing the APIs needed to do
real-time audio-visual communication natively in the browser.
getUserMedia() and the MediaStream API let's the web application get
access to the user's devices such as webcams and microphones, and
control them as abstract media streams in JavaScript. Once the media is
in the browser, the PeerConnection API, let's you send and receive
streams directly between browsers, through firewalls and NATs.
This talk will sum up what has happened in the area and where we are
today. The focus will be on what WebRTC brings to web developers and
show how stuff works in code.
Attendees will be reminded of the advantages of voice communications: confusion, certainty, hope can all be communicated in an instant by the way you say something, not the words themselves.
We will describe when and where it makes sense to add voice to a mobile app, citing some examples.
We will introduce the Phono jQuery API for adding real-time voice to web pages, demonstrating how to use it and how to use Tropo to connect to external services like call recording, conferencing and connection to the PSTN.
Phono has multiple media backends - Flash/ Java for the web, phonegap for iOS and Android - attendees will learn how and when to select them - without changing their HTML.
Fortunately this selection may soon be a thing of the past, webRTC/RTCweb promises to provide high quality cross platform support for this functionality. We will review the state of the standardisation effort and the current state of implementation in the various browsers.
We will provide accounts and support for any Hack participants who want to use Phono/Tropo in their apps, including experimental webRTC access.