WebRTC enables real-time communication across the web, but establishing and maintaining a high-quality connection is far from trivial. This session dives into the intricacies of ICE (Interactive Connectivity Establishment) negotiation, the process that determines how peers connect in dynamic network conditions, and explores how to assess call quality using RTCStats.
Using the SignalWire SDK, we'll walk through the key steps of ICE negotiation, from candidate gathering to connectivity checks. We'll then explore common issues (failed candidate exchanges, firewall restrictions, interaction with TURN servers) and demonstrate practical troubleshooting techniques using tools like Wireshark and data from RTCStats.
Beyond connection establishment, we'll examine how to infer call quality from WebRTC's RTCStats, covering key metrics like round-trip time, packet loss, jitter, and audio levels. Understanding these indicators helps pinpoint network issues, optimize performance, and improve the user experience.
By the end of this talk, developers and support engineers will have a deeper understanding of WebRTC's connection setup mechanics, effective troubleshooting techniques, and practical ways to assess call quality in real-time.