I have this setup for kamailio + asterisk, in which kamailio is supposed to listen on all ethernet interfaces on UDP port 5060, and will forward traffic from/to asterisk running on the same machine, and listening on localhost, udp port 5080. The scenario for the problematic call is somewhat like this:
SIP-PROVIDER<--->NAT<--192.168.0.0/16-->eth0:192.168.10.10<--KAMAILIO-->127.0.0.1<--ASTERISK
Our firewall/NAT has been configured to redirect SIP traffic from the SIP provider to the kamailio+asterisk machine at IP 192.168.10.10. The attached file sip-traffic-from-eth0.txt shows a tcpdump capture of an incoming call at eth0. Then, kamailio is supposed to redirect this traffic to asterisk. The attached file sip-traffic-from-localhost.txt shows a tcpdump capture of the same call at 127.0.0.1. The issue is that the INVITE is received, then routed to asterisk, which sends back the 200 OK, but then there is no ACK from the SIP provider. From the point of view of the caller of the SIP provider, the destination just keeps ringing until timeout.
Am I right in assuming that the two Record-Route headers should not appear on the traffic as seen from eth0, and that they are the source of the trouble? Can you see any additional issues I might have not seen in the traffic?