Channels: Programming with the AnyFirewall™ Engine
The Eyeball AnyFirewall™ Engine uses the concept of channels to simplify programming. 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, e.g. STUN, TURN, and ICE functionality. In order to add the AFE functionality to an existing application, the AFE replaces sockets with channels, and calls to the socket API are replaced with the similar calls to the AFE API.
AFE also provides access to sockets through its API.
For example, in order to receive RTP voice data using AFE, an application calls the AFE API function Recv() instead of the socket API function recv(). In order to send data, the application calls the AFE API function Send() instead of the socket API function send(). Furthermore, the AFE provides an API function Select() for channels. This function models the behavior of the socket API function select().
Figure 3: Integration of AnyFirewall Engine into an existing product.