What I do want to tackle here is how best to get started with WebRTC.
WebRTC as a technology sits between web development and VoIP (Voice over IP). As such, it enjoys both of these worlds but at the same time it challenges its users - those who know web development will find WebRTC a wee bit confusing. And those coming from the domain of VoIP will complain about the lack of signaling and the change in infrastructure architecture from what they are so used to.
Here are a few suggestions on how you should get started in using WebRTC and adopting it in your applications.
1. Get acquainted with WebRTC
First things first. You should get acquainted with WebRTC and understand the “feel” of it. The best way to do that is to join a Google Meet session from a desktop web browser. Make sure to be in different types of meetings - 1:1 or group meetings. Have the video cameras open. Share the screen. Poke around.
Google Meet is what Google is doing with WebRTC, and being the main maintainer of the most popular open source library of WebRTC that is used in all browsers… it speaks volumes as to what can be done with WebRTC.
Once done, try out a few other services such as Jitsi Meet, Discord, Slack, StreamYard and others. Pay attention to how they handle the user experience around the live video component. It will give you some ideas of what else is possible.
Try out the mobile applications of these services as well - see if you can notice a difference. Mobile applications are native in general, and enable the developers to modify the way WebRTC behaves. This opens the door for custom optimizations for example.
All in all, if you want to use WebRTC in your application, be sure you dog food WebRTC in other services first.
2. Try out an open source project
There are a lot of open source projects around WebRTC. A few popular WebRTC media servers are available. Your application may or may not need a media server, but you should definitely tinker around with one.
Try to download and install one of these media servers. Get their demo application to work. Maybe even make a change or two for the fun of it.
Separately, maybe find a signaling only open source project that does only peer-to-peer video calls. See how this works.
The reason for doing this is to understand what is available and out there in the open source community for WebRTC. If you take the self development route, then you should know that landscape.
3. Learn the basics of the APIs
You should learn and understand how WebRTC works.
How signaling messages (which aren't part of WebRTC) are exchanged. What is SDP and the offer-answer process. A bit about STUN, TURN, ICE and NAT traversal. Understanding the concepts of voice and video codecs is a huge plus here as well.
Then there are the actual APIs. You should know how to use GetUserMedia, what a RTCPeerConnection is and how to look at RTCStats.
Mozilla’s MDN is a great resource here.
If you go and read articles that explain how to use the APIs - check their date. If they are older than a year or two, be very cautious about their accuracy, as the APIs have changed a bit over time.
4. Take a course or a codelab
If you’re serious about this, you can always take a paid course or codelab related to WebRTC. I’ve got my own set of WebRTC courses available and up to date. Other courses out there also exist, so check out to pick the one most suitable for you.