WebRTC (Web Real-Time Communication) is an open-source technology that enables real-time audio, video calls, and peer-to-peer data transfer in web browsers and mobile applications through a simple API, without the need for plugins or third-party software. The WebRTC connection establishment process involves multiple steps, including signaling, Offer/Answer exchange, ICE candidate exchange, and data channel communication. The core components of WebRTC include Signaling Server, RTCPeerConnection, Offer and Answer, session descriptions, and channels. ICE (Interactive Connectivity Establishment) plays a crucial role in solving network connectivity issues, addressing NAT traversal, optimal path selection, and connection recovery. ICE candidates, STUN servers, and TURN servers are essential parts of the ICE workflow. ICE is essential for WebRTC to function in complex network environments. An example of a peer-to-peer chat application based on WebRTC using a signaling server is also provided.