Here, we will describe the solution request by request and instruction by instruction. Pay attention to the request number and the corresponding process on the script.
Note the following request and reply numbers. We will show the relevant requests only. Pay special attention to the IP present on the headers, Via, Contact, and the c=
line of the SDP header. These are the fields modified by the NAT algorithms. Check the Contact header of the INVITE relayed (2) for the presence of nat=yes
in the Contact header as well. In the ACK, pay close attention to the nat=yes
parameter, now in the Request-URI. ACK is a sequential request and includes the parameter. We will fix the Contact header based on this information.
This is the first INVITE of the preceding figure:
U 200.1.1.1:63493 ->200.1.1.201:5060 INVITE sip:[email protected] SIP/2.0. Date: Tue, 15 Sep 2009 16:44:08 GMT. CSeq: 1 INVITE. Via: SIP/2.0/UDP 192.168.0.143:5060; branch=z9hG4bKb224e5a7...