Chrome 47 WebRTC and ssl

Some time ago I wrote this WebRTC peer to peer tutorial. It worked well until 2 weeks ago when I tried some WebRTC testing with the new Chrome version 47. With version 47 it did not longer work. Google declared HTTP support for the getUserMedia functionality as depraceted already some time ago. And now it happened. The node.js signaling server which is part of the tutorial provides the WebRTC application via HTTP and that is not longer supported. This is another example that WebRTC is still under heavy development and that a product developer must follow the change processes carefully.

Starting with version 47 Chrome does not longer support getUserMedia on non ssl Domains. It is not longer possible to access the video and audio from a Web camera in Web applications which are loaded from a non ssl origin. If a page is loaded via HTTP one gets the error:

"getUserMedia() no longer works on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gl/rStTGz for more details."

Continue reading

WebRTC Peer to Peer Tutorial

This tutorial demonstrates the complete process to establich a WebRTC audio/video connection between two peers. In contrast to lots of other tutorials in the WEB it provides as well a complete signaling server hello world. That essential part of WebRTC is often neglected in tutorials which concentrate on the browser's WebRTC Javascript API and let the reader alone when it comes to the topic signaling. These tutorials frequently demonstrate both peers in the same browser application window. That approach leads to confusion about the data flows and the sequences in which the WebRTC callback handlers are called. This tutorial concentrates on the essential issues only and omits everything which distracts from the basic working principles.

The belonging software project needs less the 100 lines of Javascript code to show all important aspects to get a basic audio/video communication between two browsers running. It may be used as as starting point for more complex projects. The project may be dowloaded from this github repository: https://github.com/medialan/WebRTC_SimpleP2P

Continue reading

Sicherheit von WebRTC-Daten

Eines der wichtigsten Argumente für den Einsatz von WebRTC ist die Sicherheit der übertragenen Daten. Deshalb wird hier ein kurzer Überblick über die verschiedenen Datentypen, Übertragungspfade und Verschlüsselungsverfahren gegeben, welche die Sicherheit von WebRTC ausmachen. Der Beitrag beleuchtet die Thematik aus dem Anwenderblickwinkel ohne technisch in die Tiefe z. B. in Bezug auf Kryptologie-Techniken zu gehen.

Zunächst zeigt die folgende Grafik die typische Infrastruktur eines WebRTC-Systems mit den beteiligten Server-Komponenten und Datenpfaden.

WebRTC_Security Continue reading

Was sind WebRTC-Frameworks?

Im Gegensatz zu den einfachen "WebRTC Hello World" Beispielen ist die Nutzung von WebRTC in Web-Anwendungen mit Anwendungs-spezifischen Funktionen eine anspruchsvolle Entwicklungsaufgabe. WebRTC stellt zunächst nur Rohkanäle für die Übertragung von Video-, Audio- und anderen Echtzeit-Daten zur Verfügung. Um diese Kanäle für eigene Web-Anwendungen zu erschließen und um eigene Funktionen realisieren zu können, muss eine Vielzahl von Problemen gelöst werden.

Um die Funktionen von WebRTC in bestehende Web-Anwendungen zu integrieren ohne aufwändige Software-Entwicklungen oder Infrastruktur-Aufbau zu betrieben, bietet sich die Nutzung von WebRTC-Frameworks wie melavi an. Das folgende Bild zeigt die Komponenten des melavi-Frameworks:

WebRTC_Framework Continue reading