The 4 Different Approaches of Using WebRTC APIs

For those who want to develop with WebRTC, there's more than one way to go.

1. Go it alone
This seems like the most straight forward approach. WebRTC is out there already and while it has its challenges it can be used directly. There's also enough reference code out there to start from, with around 2,000 different WebRTC related projects only on github. Those that take this approach tend to be outfits that have full stack developers with previous VoIP experience, and they usually have an NIH (Not Invented Here) mentality which revolves around wanting to have control on each and every aspect of their service. The other reason to go it alone is usually because you already have a VoIP deployment, and the only thing you are looking for is adding another access point into your service from the web browser by adding WebRTC into it. With self-development, most will still end up using open source components such as the popular rfc5766-turn-server, the relatively newer Janus gateway or an Asterisk / FreeSWITCH VoIP platform. When necessary, commercial components and SDKs are also licensable. Most notable one today is Dialogic's PowerMedia XMS, offering media processing capabilities for those who need it.2. Adopt Frameworks
WebRTC on its own can be viewed as a media engine. The signaling on top of it – finding out who to connect to and negotiating that session – are out of the scope of WebRTC and is left for the developers to decide. There are already several frameworks that take care of the signaling aspects of WebRTC, which utilize WebSockets or COMET technologies and provide proprietary means to communicate across browsers. These frameworks today are mostly open source and it is common to find them in many projects out there. The most popular ones are:- PeerJS, which I have already written about here. This one is used mainly to decentralize the web due to its P2P nature and focus.
- EasyRTC, focusing on video communications with mesh video conferencing capabilities. Due to its ease of installation and use, it has been deployed in labs or early production on over 5,000 servers already.
- SimpleWebRTC, which has been around for a long time, and is now getting a bit more focus from its original developers; making it a compelling framework as well.
3. Rely on SaaS Suppliers
To deploy a WebRTC project, you have to deal with NAT traversal issues at the very least. At the end of the day, this means deploying more than just web servers and deal with things like geolocation of your target users and other headaches involved with low latency real time communication. There's also the need to maintain and monitor the deployment, which tends to be a hassle. To that end, a new breed of SaaS suppliers exist that can offload that headache from developers and DevOps teams by providing SaaS offerings. The 4 notable areas are:- NAT traversal. Instead of deploying your own TURN servers out there, you can just consume that as a service by selecting XirSys or VideoRoaming for the job.
- Signaling. There are those who offer low latency messaging service today, and they can be used for WebRTC signaling as well. Those that offer it, complementing it with reference code are PubNub and Firebase.
- Multipoint conferencing. Multipoint video is a real challenge for WebRTC. To that end you can use MCU1.com service. I am sure others will follow.
- Quality tracking. Instead of having to build up an operation that monitors the whole service for its quality to understand what users are experiencing, you can use CallStats.io's service and get online reporting on the user experience.


August 5,2014
Sir;
This was a very good list of information.
Can you help me find a good Framework server host for my webrtc and RTCapps projects?
Any information would be greatly appropriated.
Thank You,
David Brown
There are many of those around.
If you are looking for an open source free solution, check out easyRTC, SimpleWebRTC, RTC.io & PeerJS.
If you are looking for paid SaaS platforms, then check out the list in my report: https://bloggeek.me/choosing-webrtc-api-platform/
Hi Tsahi,
Very imformative post indeed, thanks!
Just a quick one. I am looking to incorporate video and audio calling into my social network. Basically, just to add a way of communication similar to instant chat or private messaging. It will be a paid service. What would be my best approach? As a startup, I prefer to go the cheapest though it might not be the best, however if the difference is small, I would go the best way. I think api would be best, but who? Twilio seems so complicated with their wide range of services. I just want users who are online to be able to call, when using desktop browsers and mobile app. So far, I was looking at weebo.com but they lack a clear pricing strategy just a contact us form. Those kind I fear to even ask. Anyway, you professional insight is highly anticipated and welcomed.
Thanks.
Don
Don,
You can definitely check TokBox, or try out http://freemad.org/ by OpenClove.
Thanks for the link, freemad seem cool on first look.
By the way, I made a mistake I meant weemo.com not weebo.
thanks, this is a useful summary!