Let me rephrase, Kamailio is using the wrong local TCP socket as the source.
It is my understanding that a TCP connection is defined by 4 things: source IP,
source port, destination IP, and destination port. A device which has
registered to Kamailio over TCP establishes a connection which should be used
for all requests from the server. The 'location' table used by the registrar
module has a 'socket' column which shows the local socket that the remote
device registered to. This is the socket transport:address:port which I would
expect Kamailio to use for all INVITEs to the remote device.
The problem we were having was that Kamailio started sending INVITEs from the
wrong local socket, then the customer's router couldn't figure out to translate
NAT for that socket. This was recreated when the remote device received an
INVITE which had a contact header which differed from the sending socket, and
caused the device to create a new TCP connection for it's response. For some
reason, Kamailio saw this new connection and started sending calls (initial
INVITEs in a completely new transaction) to it instead of the actual TCP
connection that was used for registration. Another possibly important factor is
that the "new" socket created by the remote router for NAT was similar to
another device's registration socket. It had the same remote source, so maybe
Kamailio matched this with an existing registration for a different device?
Device A: tcp:CustomerIP:10042 -> tcp:KamailioIP:4242
Device B: tcp:CustomerIP:11042 -> tcp:KamailioIP:4242
Device A new connection for a 200 OK response: tcp:CustomerIP:11042 ->
tcp:KamailioIP:5062
I am not using any functions which update the registration for the device with
this new TCP connection, and interestingly other kinds of packets like NOTIFY
in response to a subscription and OPTIONs keep alives continue to use the
registration socket. I think it is somehow internal to Kamailio.
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/1532#issuecomment-398796849
_______________________________________________
Kamailio (SER) - Development Mailing List
[email protected]
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev