Hi Nils,
responses inline...
2009/2/27 Nils Ohlmeier lists@ohlmeier.org
Hi Samuel,
I have seen lots of default config files where in the reply route only after checking the message (client_nat_test(1)) fix_nated is called. Why is not called when the NAT flag is set upong lookup_XX?
because the Registrar module takes already care of setting everything up correctly when lookup() is being called.
But, as far as I know, only in the called direction. If the called party is registered and behind NAT the lookup will indeed set the destination to the "public" side of the NAT. I was more interested in "rewriting" the Contact for the 200 OK because otherwise we find the classical lost of ACK and call drop after 2x-3x seconds
In ser-oob I think the reply_route should include the case of a user called behind a NAT and the reply is not fixed due to some router in the middle. Will it hurt including fix_nated_contact in the case of checking the flag?
I'm not entriely sure that I get what mean/complain about. When I take a look at the latest ser-oo.cfg from CVS Head
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/ser/sip_router/etc/ser-oob.cfg?rev... I see in the REPLY_ROUTE a nat_uac_test("12) call and a fix_nated_contact() call afterwards. So the Contact of the B (called) party should be fixed if he is located behind NAT.
But nat_uac_test will only check for private addresses on Contact, isn't it?
Let me try to explain with a message exchange
---INVITE--> a.b.c.d:61000 <--200OK-- source=a.b.c.d:61000 but Contact: a.b.c.d
so ACK will be sent to a.b.c.d:5060 (deafult SIP port) instead of the "nated" port 61000.
I know it's some ALG in the router but I was just wondering whether checking the natflag in the onreply route and calling fix_nated_contact would help in this case or it would cause other issues.
Greetings Nils
Thanks for everythin and I hope I've been clearer in this mail,
Samuel.