Hi Aymeric,
What it happens is correct and fully complaint to RFC 3261.
A client may register several contacts for the same users, and each distinct contact forms a separate location registration.
Registering a new contact has no effect on the already existing (registered) contacts - it is like 2 phones registered for the same account.
If you want to replace a contact, the device needs to specifically un-register the previous contact.
Regards, Bogdan
Aymeric Moizard wrote:
Hi all,
I'm using openser13 and met an issue when saving contact into my sql database upon registration refresh.
After doing several registrations, sometimes my NAT loose the connection and change the port number (rport) that was used in previous signalling exchange.
old REGISTER: contact: with port 6010 answer: contact: with port 6010 new REGISTER refresh: contact: with port 1223 answer contact: with port 6010 (old one) + contact with port 1223 (new one)
In the above case, this result in a new contact added in the database while I'm expecting the server to replace the previous address with the new one.
I know that the rfc is not specifying such behavior: the expected processing in the specification is the one done by ser, but by experience, if a contact was changed within a refresh, it's because of a NAT reboot/issue or because of roaming.
That said, I wish to: 1: remove the old binding with call-id of the new REGISTER refresh 2: add my new binding.
I've written a proxy before and that was my default behavior ;) I'm not even finding a use case where this could break any compliant app.
Any way to do this? tks, Aymeric MOIZARD / ANTISIP amsip - http://www.antisip.com osip2 - http://www.osip.org eXosip2 - http://savannah.nongnu.org/projects/exosip/
Users mailing list Users@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/users