an INVITE to UA B (the proxy forwards the message) UA A Internal transport address: 10.0.0.1:5060 UA A Internal transport address: 10.0.0.1:5060 UA A External transport address 130.192.225.17:5080 UA A External transport address 130.192.225.17:5080 Via: SIP/2.0/UDP 130.192.225.14:5060 Via: SIP/2.0/UDP 10.0.0.1:5060;rport Via: SIP/2.0/UDP 0.0.0.1:5060;received=130.192.225.17;rport=5080 INVITE INVITE 10.0.0.1:5060 130.192.225.14:5060 10.0.01:5060 130.192.225.14:5060 130.192.225.14:5060 130.192.225.14:5060 UA B sends a 200 OK response (the message reaches the proxy) UA B sends a 200 OK response (the message reaches UA A) UA A Internal transport address: 10.0.0.1:5060 UA A Internal transport address: 10.0.0.1:5060 UA A External transport address 130.192.225.17:5080 UA A External transport address 130.192.225.17:5080 Via: SIP/2.0/UDP 130.192.225.14:5060 Via: SIP/2.0/UDP 10.0.0.1:5060;received=130.192.225.17;rport=5080 Via: SIP/2.0/UDP 10.0.0.1:5060;received=130.192.225.17;rport=5080 200 OK 200 OK 10.0.0.1:5060 130.192.225.14:5060 10.0.0.1:5060 130.192.225.14:5060 130.192.225.14:5060 130.192.225.14:5060 FIGURE 12.11 An INVITE request and 200 OK response routing when NATs are present. C 2009 by Taylor & Francis Group, LLC NAT Traversal private one. This means that when the 200 OK answer reaches the proxy, the SIP message cannot be forwarded to UA A since the transport address in the Via header field is not globally routable. To overcome this limitation, two additional parameters called, respectively, "received" and "rport," have been defined. The first one was defined in RFC 2543, while the second one was defined in RFC 3581 [11]. In Figure 12.11, UA A simply sends the INVITE request, placing an empty "rport" parameter in the Via header field. As proxy A receives the INVITE request, the transport address stored in the Via header field is compared to the source network address and the port of the packet carrying the request. If they differ, a NAT is on the path and the source network address and port observed by the prox