How Do Video and Voice Calls Work?
Tags: webdev, deeplearning, learning, interview
Published: 2024-07-08 06:50:12

## Important for Interview

**In many interviews, candidates are often asked to explain how video or voice calls work. This article provides a high-level overview of the functioning of voice and video calls.**

**Voice over Internet Protocol (VoIP)** is one of the most popular standards for voice and video calling over the web.


We all use voice and video on various platforms like WhatsApp, Skype, Messenger, Facebook, etc. Both voice and video calls depend on how we stream media between the two clients which are connected to each other. So, there must be something that can do the work of media streaming from one client to another client.
For media streaming, we need to know about **WebRTC**.

**WebRTC** is a free, open project that provides browsers and mobile applications with **Real-Time Communications (RTC) **capabilities via simple APIs. The WebRTC components have been optimized to serve this purpose best.

But there are many other things that we need to do as WebRTC is not enough for complete implementation.
**Other Items to Consider Are:**

**- Signaling**
**- STUN Server**
**- TURN Server**


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1vonswc0zsft01ncqydl.png)


## Signaling
**What is Signaling?**

To set up a call between two clients, both clients must conform to each other by sending key data, messages, and metadata about the media. Over signaling, we do these things.

We can use WebSocket for signaling.

Signaling is just used to know that these two clients want to connect for the call.

> Signaling may be accomplished via WebSocket.


## Peer-to-Peer Connection
After signaling, we need to connect both the client peer to peer. For connecting, we must have the public IP address of both clients.

So, to get the public IP address, we use the STUN Server.


## STUN Server

STUN Server is used to get the public IP address.


**Why do we need a public IP address?
**
A Public IP Address is an IP address that is globally unique across the Internet. Only one device may have a public IP address.

A Private IP Address is an IP address that is not globally unique and may exist simultaneously on many different devices. A private IP address is never directly connected to the Internet.

**The NAT(Network Address Translation)** provides the local IP address of the device which can't be used publicly to connect peer to peer. And for WebRTC, we need to have a public IP address. STUN Server provides that.

If everything is fine, we get the public IP addresses of both clients, and then, we connect both clients through WebRTC to start the call. WebRTC handles all the media streaming.

> The real-world connectivity is not ideal.

In case, we are not able to get the public IP address of both clients. Then we can't connect peer to peer. In that case, we need the TURN Server.

## TURN Server

TURN Server is used to connect both clients if peer-to-peer fails by acting as a mediator. It takes the data from one client and sends it to another client. So, its job is to relay the media.

This way, the two clients start talking to each other.

The other small data that are not related to media like a client cuts the call, any setting changes, messages, etc are sent over the signaling process.

> The following question arises:

**Why WebRTC can't do signaling?**

Answer: In order to reduce redundancy and promote compatibility with existing technologies, the WebRTC Standards do not specify signaling techniques or protocols. WebRTC is designed with media in mind. As a result, the voice and video calls function properly.

WebRTC is optimized for media.


## Conclusion
Voice over Internet Protocol (VoIP) is a technology that enables you to make voice calls via a broadband Internet connection rather than a traditional (or analog) phone line. Some VoIP services may only enable you to contact other VoIP users, whilst others may allow you to call anybody with a phone number, including local, long-distance, mobile, and international lines. Furthermore, while some VoIP services require you to utilize a computer or a specific VoIP phone, others enable you to use a regular phone linked to a VoIP adaptor.


**Thank you. Hope this helps. Happy Learning.**