It is very difficult to recreate because it involved the random element of a customer's router using the same originating TCP port for two connections, which is technically correct for TCP. I am seeing an INVITE meant for Device A go to Device B because there are TCP connections for each which share the same tcp:IP:port destination. I would expect that Kamailio should try to use the TCP socket (defined by the 4 numbers srcIP, srcPort, dstIP, destPort) which was used by device A for it's registration, not the new one which had been created by device.