[OpenSER-Users] registration & binding update

Aymeric Moizard jack at atosc.org
Tue May 27 11:43:17 CEST 2008


On Mon, 26 May 2008, Bogdan-Andrei Iancu wrote:

> Hi Aymeric,
>
> What it happens is correct and fully complaint to RFC 3261.

That's what I said in my mail: however I wish to have a solution
for the specific case I'm describing: if the contact is coming
with a common Call-ID, then the port number shouldn't be checked.

> A client may register several contacts for the same users, and each distinct 
> contact forms a separate location registration.

When both contact comes in different REGISTER and use the same transport
with port being the only difference, then there is 99,99% chance that the 
old binding should be replaced by the new one.

> Registering a new contact has no effect on the already existing (registered) 
> contacts - it is like 2 phones registered for the same account.

It's different because both contact comes with same Call-ID in the case
I describe.

PAT is the origin of most deployment issue. I've always think the rfc
was not enough talking about the call-id/contact relation in registers.

For me, REGISTER should always contains all the active bindings at the
same time: ie REGISTERs (one call-id) will never periodically register
ONE contact and then another valid ONE. The real case is to REGISTER both
of them in each refresh.

Another origin of problems is when other nasty "on-the-path" application 
are modifying the contacts: then contact arrive as "different" but this 
was not intended...

Tks for your comments.
Aymeric

> 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 at lists.openser.org
>> http://lists.openser.org/cgi-bin/mailman/listinfo/users
>>
>> 
>
>




More information about the sr-users mailing list