User guide

Network Address Translators (NATs) are the big enemies of RTP.
A NAT-network consists of several computers that share one public IP
address with the external world. Computers that are inside of a NAT
network use “private” addresses. NATs are very useful to easily connect
many computers to the Internet, but at the price that the computers are
not fully reachable (routable) from the outside of the network.
There are several problems related to NAT and VoIP. The most common problem caused by NATs is
known as “one way audio.” Remember that a normal conversation involves two separated RTP
streams. In the presence of a NAT, only one of the RTP streams (from the inside to the outside) flows,
while the second RTP stream (from outside to the inside) is blocked. This results in the calling party
being unable to hear the called party.
Unfortunately, private addresses are almost omnipresent in developing regions Hence, problems
related to NATs will occur frequently in VoIP implementations.
Setting up a SIP-based VoIP in the presence of NATs is not straightforward. Some general guidelines
are included in the scenarios provided in this primer.
4.4.4 Inter-Asterisk eXchange (IAX)
The Inter-
Asterisk
eXchange (version 2) protocol (IAX2)
16
is an alternative to signalling protocols like
SIP. IAX2 was created as part of the open source PBX
Asterisk
. Unlike SIP that uses two pairs of data
streams (one for signalling and one for voice), IAX uses one single data stream to communicate
between the end-points (a telephone or a telephone switch). Both signalling and data (the voice
conversation) are transmitted by the same channel (in-band) in contrast to SIP that uses out-of-band
17
data streams (RTP) to deliver the data.
As mentioned before, NATs are quite common in developing regions, so IAX2 is a friendly protocol for
many scenarios in such environments. Furthermore, IAX2 allows multiple calls to be merged in a single
set of IP packets, as one IP packet can contain information for more than one active call. This
mechanism is known as “trunking.” With IAX2, trunking provides bandwidth savings.
16. IAX2 is a low overhead and low bandwidth VoIP protocol designed to allow multiple
Asterisk
PBX's to communicate with
one another . Payload is sent with a header overhead of only 4 octets (32 bits). The more complex header of 12 octets is
used for control functions and some payload packets (one per minute approx).
17. The idea of sending signalling in-band implies that the PBX needs to separate carefully what is voice from what is signal
within the data stream. Although this requires more processing power, IAX2 has the advantage of being firewall and NAT
friendly
Page 14 TRICALCAR | www.wilac.net/tricalcar – Version: February 2008