I've noticed a problem with registrations on the pcscf when doing some testing with sipp
If I send in a REGISTER with SIPP followed by an INVITE calls go through my system no problem. If I then stop the sipp script and run it again, I find that although the registration succeeds, subsequent INVITES are rejected telling me that I have not registered! If I unregister at the end of my script everything is fine, and the problem goes away after the original REGISTRATION times out, so this led me to think that we had a problem with multiple registrations entries in the system.
The problem seems to be a result of the fact that sipp always places the same ip address and port number on the contact line when using tcp connections.
I've had a look through the code and believe that we are getting multiple entries in the usrloc hash table in this scenario, and ul_get_pcontact only ever returns the first one which causes pcscf_is_registered to incorrectly report that the UE is not registered.
Paul