Hi all,

I have a problem when using two UACs behind same NAT on Linksys WRT54GL router. Registrations, Invites, ... are handled correctly, but after 30sec in the call UACs hangs up the call (RTP goes directly between clients). This happens because UAC#1 (which answerd the call with OK) didn't recive ACK from UAC#2.
This isn't happening when I have this same clinets behind NAT on PIX525 and everything is working fine. Everithing is also fine when UAC#1 calls someone on PSTN (RTP is handled by RTPProxy) or someone behind other NAT.

Strange thing is that UAC#1 sends Ringing response and OK message with this information in Contact header:
Contact: <sip:bob@public_ip_address:31479;rinstance=e0f8548cf68b5b6e>

but proxy forwards this Ringing response and OK message to UAC#2 with this information in Contact header:
Contact: <sip:bob@
public_ip_address:0;rinstance=b18efeaa8a0e3f0f>

so port is "0" and with ngrep on proxy I saw that this port is replaced with port "5060" and ACK is sent to the UAC#1 with this parameters public_ip_address:5060 which isn't correct because UAC#1 is using 31478-31488 port range and expects traffic on these ports.

Some of debug messages that i see on proxy are:
1. sl_filter_ACK: to late to be a local ACK!,
2. e2e proxy ACK found
    building branch for end2end ACK
    totag for e2e ACK found: 1

I'm using Kamailio 1.5.0 with standard kamailio.cfg and newest XLite (with STUN and ICE options turn on).

I would be greatfull if someone can give me any guidelines what to look next in order to solve this issue.


Best regards

Dubravko