What is WebRTC?

Most people associate Web RTC with video and audio calls. That is partially correct however the technology is much more functional than just calls. According to Wikipedia “WebRTC (Web Real-Time Communication) is a free, open-source project that provides web browsers and mobile applications with real-time communication (RTC) via simple application programming interfaces…” That is partially true too because this technology is embedded in many browsers and application and not all of them are open-source. Also this statement shows WebRTC as some kind of library, that is not completely right. So let’s see what is Web RTC from the point of view of web developer.

WebRTC is a new browser API supported by almost all (Safari, Firefox, Chrome and Edge in desktop and mobile versions) browsers. This API gives possibility to create a channel between two browsers and stream almost any kind of date through this channel. The key point is that browsers are connected to each other but not to server and in some cases data will be transferred between browsers without server. However to make WebRTC connection work we need two kind of servers: signaling server and ICE (Internet Connectivity Establishment) server. ICE server is required due to imperfection of IPv4 protocol – you cannot initiate connection with peer that is located in local network behind some router.

WebRTC communication schema

ICE server can be TURN or STUN. In case of TURN server both client are connected to the server (through TCP or UDP) and data is transfer through the server in case of STUN server just observe both client from the internet and help them to establish session, so data is not transferred through server (see picture above). One of good example of STUN/TURN server is Coturn (https://github.com/coturn/coturn).

Signaling server should contain logic of you application. Signaling server decides how to interconnect client. For example in case of simple video conferencing solution with several independent meting rooms signaling server should keep track of meting rooms, let a meting room members know about each other and let them know what ICE (TURN/STUN) servers they can use to establish connection.

How to embed WebRTC video/audio conference to you Website?

As you can see video/audio conferencing is not the only one but one of the most popular thing created with WebRTC at least for now. So what do you need to add conference to your Website?

First you need to define the rules, who should call who, who should be able to control call, how system should behave in case of interrupted Internet connection, what additional features (like recording) do you need and how this feature should work.

Second step is STUN/TURN server you can use on of the free servers by Google or other providers, but they may give you unstable connection and a lot of surprises. You can use some paid solution, like Twilio for example, they will give you STUN/TURN servers together with call rules and infrastructure. And that is good choice if you are ok with their features, security level and monthly payment. The most flexible way is to setup your own STUN/TURN server. In that case you will have full control of workload and performance. If you will deploy STUN/TURN server to some modern cloud provider like Azure or AWS you will have perfect utility to scale solution and control performance and expenses.

The last think is your conference front-end and singling server. In case of some paid solution you will have this already implemented but limited to proposed feature set. The alternative way is to hire developer or some company to build conference for you from scratch. This may require significant payments and some time. And finally you can find some company that already have their own WebRTC solution and can customize it and embed to your web-site.

Why Tesseris Pro can deliver the best WebRTC solution for you?

  • We have developed our WebRTC solution from scratch without any overcomplicated or redundant libraries and services. Thus you can be sure that performance of our solution is the best that can be with WebRTC.
  • You do not have to pay for any subscription just for embedding and customization of existing solution.
  • You can use your preferred cloud provider, who is reliable and offer best scaling and billing option, or even setup everything in your own datacenter, office or at home. We will support you with network and security configuration.
  • You can be sure that we can implement everything that is supported by modern browsers. In case of 3rd party solution integration you will be limited to the solution features. We designed our WebRTC solution as a template but not framework, we can completely rewrite it for your needs.
  • You may find a huge hype around WebRTC and sometimes people will try to sell you things that you already have for free in your browser. We will explain you what is simple and what is complicated, what is built in and what is custom. You will see that WebRTC is much more simple thing than you thought.
  • We are working for more that 10 years and have 100% client satisfaction. We believe that our mission is to make other businesses successful with our IT expertise. Your success is our goal!

Useful Links:

Blog post about Web RTC with code samples