
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
SIP registrations don’t work through a firewall
|
359
registrar. The local socket used to communicate with the recipient is the local IP
address and port used by your phone’s RTP agent: i.e., your phone’s IP address and
RTP port. Consider Figure 15-1.
In Figure 15-1, phone A is able to send audio data to phone C, but phone C is unable
to send audio data to phone A because the firewall (B) doesn’t know what to do with
the RTP packets coming from phone C. This is a problem created by NAT (network
address translation), which cannot keep track of connectionless applications that use
more than one socket pair, like a two-way phone conversation.
To solve this problem, add a SIP proxy server between phone A and firewall B. Con-
figure the SIP phone so that it places all calls through the SIP proxy. The SIP proxy
knows how to handle the RTP data sent to, and received from, many SIP endpoints
simultaneously. In this instance, the SIP proxy would need to reside on a DMZ
between A and B, so that it can have a publicly routable IP address. The SIP proxy
could also reside on the same host as the firewall, if public IP addresses aren’t
abundant.
Another way to approach the NAT problem is to use a STUN (Simple Traversal of
UDP) NAT server. This server assists endpoint devices in figuring out what sockets ...