Guide to Firewall and NAT Traversal 

  Google+
NAT Traversal

VoIP call example using AnyFirewall Engine

Eyeball AnyFirewall Engine uses the concept of channels to simplify application programming. Figure 8 shows how the AFE fits in a typical VoIP application. Each channel is accessed via a set of functions similar to the socket API. Like sockets, each channel represents an endpoint for sending and receiving data. However, channels hide the underlying complexity required for the firewall traversal process, such as the STUN, TURN, and ICE functionality. To make adding the functionality of AFE to an existing application easy, calls to the socket API are replaced with similar AFE API calls. For example, to send and receive data using AFE, an application calls the Send() or Recv() on a channel, instead of using the send() and recv() functions of the socket. Furthermore, AFE provides the Select() function for channels, which models the behavior of the socket API function, select().



Figure 8: Integration of the AnyFirewall Engine into a VoIP application

Figure 9 shows the sequence of AFE API calls that take place on the caller and callee user agents in order to establish a call. Please note that, the sequence of calls here is similar to the sequence of ICE methodology steps in figure (3). Once a call is completed, the usual Send(), Recv(), and Select() functions are used, as in standard socket API.


Figure 9: SIP call setup using AFE API

NAT Traversal White Paper

fff
  1. Introduction
  2. The Firewall and NAT Traversal Problem for VoIP and IP Communications
    2.1 The NAT/Firewall Traversal Challenge
    2.2 NAT Traversal Solution Requirements
  3. Solving the NAT Traversal Problem
  4. How ICE Methodology Works
  5. AnyFirewall Technology
    5.1 NAT Traversal API - AnyFirewall Engine
    5.2 STUN TURN Server - AnyFirewall Server
    5.3 VoIP call example using AnyFirewall Engine
  6. Conclusion
  7. Reference

VoIP SDK