Chris Kranky

Recent Posts


Tools for WebRTC – it’s about time

Chris KoehnckeChris Koehncke

connect

For the moment, there aren’t many tools for WebRTC beyond what Chrome provides with webrtc-internals and inspection of elements. It’s rudimentary at best. This troubled Thanasis Polychronakis, CTO of TalkSession, so he decided to do something about it and with that www.check-connectivity.com was born.

check-connectivity.com is a single page web application for Chrome (only) that basically allows you to check whether a WebRTC connection can be made from your network. If all’s good, you’ll get 3 big green checks marks at the top of the page and some ancillary network info below. Great stuff if you’re trying to figure out why something is (or isn’t) working.

TalkSession is a technology healthcare company working to connect therapists with patients using the Internet. This is a perfect application for WebRTC’s primary voice/video capabilities. Thanasis built the 95% core code of check-connectivity at a hackathon (which speaks to the simplicity of WebRTC app development).

Unfortunately, unearthing this ‘gem’ turned out to be a bit more work than he anticipated. It highlights the maturity of WebRTC and the need for us (you and I) to make WebRTC more accessible to the mainstream web developer. Thanasis wanted an easy way for users to confirm their WebRTC connectivity. The equal of the familiar speedtest that we’ve all run. This would answer the “it’s not you, it’s them” problem, in the event the user was on a highly restricted network.

As he studied the issue, he realized that the lowly STUN protocol provided a lot more information in it’s reply than simply the public Internet address of the client. With STUN, he could also determine a bit about the user’s network situation (NAT’s, proxy, etc). Combining STUN with a simple node.js signaling app allowed him to generate a phantom test call from the client to his server recording the progress along the way.

This gathered information was easily presented on a webpage and in the spirit of sharing on the Internet, Thanasis created check-connectivity.com such that we could all benefit.

Thanasis faced some challenges with his WebRTC project and offered some advice. First, information on the basics of WebRTC were tough to find, either materials was too simplistic or in such techno speak he didn’t understand it. A Goldilocks & 3 Bears problem. Second, the network of online users posting good information were few and far between, it often took several attempts to get someone to answer his forum questions. He also struggled with what libraries to use, many had some rough edges.

Even differences between Firefox and Chrome had to be surmounted. Firefox requires the user to ALLOW media when gathering the media, whereby Chrome only asks once the media is to be transmitted. Hence check-connectivity.com only works on Chrome for the moment (he didn’t want to scare off the user asking them to ALLOW access to the webcam and microphone).

All in all, Thanasis learned a lot, contributed a bit and is ready to tackle the next layer of WebRTC application development.