ICE is a protocol that allows media streams between two endpoints to be established even though they are located behind Network Address Translation (NAT) devices and firewalls.
When an ICE-enabled client (the caller) wants to communicate with another party (the callee), ICE gathers as many sets of IP addresses as possible to be used for communication between both parties. ICE then determines which path is best and establishes a media session.
ICE support brings the following advantages:
- It permits to establish voice calls with user agents that exclusively use ICE protocol for setting up media streams.
- It allows RTP streams to traverse network address translation (NAT) devices and firewalls.
Establishing media connectivity using ICE may require adding Simple Traversal of UDP through NAT (STUN) / Traversal Using Relay NAT (TURN) server(s) to your network.