Hi,
This is under my method=="REGISTER" section:
if (nat_uac_test("1")) {
setflag(6);
fix_nated_contact();
force_rport();
};
I also have this under method=="INVITE" :
if (method=="INVITE" || method=="ACK") {
if (client_nat_test("19")) {
fix_nated_contact();
};
And this one under a onreply route :
onreply_route[2] {
if (status=~"(183)|(2[0-9][0-9])") {
use_media_proxy();
if (nat_uac_test("19")) {
fix_nated_contact();
};
}
};
Thanks for your reply...
ilker
-----Original Message-----
From: Ladislav Andel [mailto:ladaan@iptel.org]
Sent: Monday, April 09, 2007 11:31 AM
To: İlker Aktuna (
Koç.net)
Cc: serusers(a)iptel.org
Subject: Re: [Serusers] interesting 2 way SIP signalling problem
Hi,
do you call force_rport() function for NATed clients?
Can you paste in the NAT section of your ser.cfg here?
Paste in NAT detecting section too.
Lada
İlker Aktuna (
Koç.net) wrote:
Hi,
I have a working configuration on my SER server. Most of the users can make calls (both
way incoming and outgoing) with no problem.
However, I have some clients that can't make calls.
When I analyze these by ngrep and/or tcpdump, I see that the SER server does not reply
the packet on the correct port.
For example, I have a testing client which is behind NAT.
The client sends INVITE message from UDP port 3023 to port 5061 of my SER.
(cseq number is 1)
SER exchanges the message with the uplink sip gateway and when it
receives a "OK" response it forwards this message to the client's NAT
IP address BUT on a different port (14640) with correct cseq number
(1)
Of course, this new port is not open on the NAT router and it does not reach the client.
I see that the first INVITE message has Contact field with internal IP address of the
client and the port number as 14640.
So the SER server sends the returning message to the external IP address with internal
port number.
How can I fix this issue ?
I can send the configuration of my SER server if that would help to find the problem.