[OpenSIPS-Users] Fixing the Contact Header for NAT
Iñaki Baz Castillo
ibc at aliax.net
Thu Nov 27 14:20:21 CET 2008
El Jueves, 27 de Noviembre de 2008, Juan Backson escribió:
> In the 200OK received by the nated client, the Contact is :Contact:
> <sip:1000 at 192.168.1.100:33756>
> Opensips did not add the Record-Route even
> though I did specify fix_nated_contact in on_reply_route.
Perhaps you don't understand the meaning of adding Record-Route, it has
*nothing* to do with fix_nated_contact.
Adding Record-Route means that in-dialog requests (as the ACK for the 200 OK)
will pass through the proxy, so the ACK will contain a Route header and a
RURI with the value of the Contact received in the 200 OK:
ACK sip:1000 at 192.168.1.100:33756
From: zzzzzzz
To: zzzz
Route: <sip:ip_proxy>
This ACK will arrive to the proxy (it has a Route so the device/phone MUST
send the request there), but whe this ACK arrives to the proxy it will remove
the Route header and route it based on the RURI, this is: the proxy will
forward this ACK to IP 192.168.1.100:33756.
Do you understand the problem? Most probably, the proxy is in a different
network (hopefully with public IP) so it cannot reach that private IP.
To solve it, the proxy must run "fix_nated_contact" in on_reply_route. This
will replace the IP in the Contact of the 200 OK with the received public IP.
In your case, this last point is not working since the UAS receives a Contact
with a private IP. Verify it.
--
Iñaki Baz Castillo
More information about the Users
mailing list