WebRTC (Web Real-Time Communication) is an open-source technology that enables real-time voice, video calls, and peer-to-peer data transfer in web browsers and mobile applications without the need for plugins or third-party software. The WebRTC connection establishment process involves multiple steps, including signaling server, offer/answer exchange, ICE candidate exchange, and channel communication. The core components of WebRTC include signaling server, RTCPeerConnection, offer/answer, session description, and channels. ICE (Interactive Connectivity Establishment) is a key technology in WebRTC for solving network connectivity issues, addressing NAT traversal, optimal path selection, and connection recovery. ICE candidates, STUN servers, and TURN servers play vital roles in the ICE workflow. ICE is essential for WebRTC to work in complex network environments. An example of a WebRTC-based peer-to-peer chat application with a signaling server using FastAPI and WebSocket is provided.