The Interactive Connectivity Establishment (ICE) provides a generic mechanism to assist media in traversing Network Address Translators (NAT) without requiring the endpoints to be aware of their network topology. ICE provides a framework with which a communicating peer can discover and communicate its public IP address so that it can be reached by other peers. ICE allows user agents to discover enough topology information to find communications paths. SDP carries the IP addresses and ports of the call participants that receive RTP streams. Since, NATs alter IP addresses and ports, the exchange of local IP addresses and ports might not be sufficient to establish connectivity. ICE uses protocols such as Simple Traversal of UDP through NAT (STUN) and Traversal Using Relay NAT (TURN) to establish and verify connectivity.
The media flow cannot be established between the endpoints of caller and the called party, if the endpoint advertises its local interface. ICE assists media in traversing NATs and firewalls by gathering one or more transport addresses which the two endpoints can use to communicate. This determines the best transport address for both endpoints to establish a media session. ICE is often deployed in conjunction with STUN and TURN servers.
The following functions are performed by the SBC Edge to establish the media flow.