[Devel] Processing REGISTER requests

Klaus Darilion klaus.mailinglists at pernau.at
Thu Oct 6 14:19:39 CEST 2005


Hi Dan!

Dan Pascu wrote:
> On Wednesday 05 October 2005 11:28, Klaus Darilion wrote:
> If you use fix_nated_register() and save private contacts in your databse:
> 
> 1. take one sip account joe at domain.com and configure 2 phones in 2 
> different networks with that account and assign the same private IP to 
> both phones. They will overwrite each ones registration.
> 
> 2. take 2 sip accounts with the same username in 2 different domains say 
> joe at domains.com and joe at foo.com and do the same. Same outcome.

This would mean that the current algorithm would not check the domain 
part of the AoR. Are you sure? This sounds really buggy!

> 
> Anyway since everybody seems to have missed that I'll put it here again:
> 
> 1. look for and entry that has the same username, domain, call-id and 
> user-agent plus a cseq that is greater than the previous one. Eventually 
> put a limit of how greater it can be to make this more accurate.
> Say old + 2 (because of an auth request there may be 2 REGISTER requests 
> per registration - I'm not sure if anybody uses something where more than 
> 2 REGISTER requests are sent per registration; if so we can increase this 
> limit)
> Also if fix_nated_register() is used and the contact is private we can 
> also require that the contact is the same since that should not change 
> from one request to another.
> 
> 2. if previous step failed to find an entry use the current algorithm to 
> lookup by contact.
 >
 > 3. if both steps failed consider it a new entry.

I still can't see how we may combine them. Just take your scenario 1. 
from above. Two different clients -> 2 different call-ids. Thus, your 
call-id algorithm does not match and you suggest the use the old 
algorithm. Thus, we again overwrite the contact.

IMO we should use your call-id algorithm or an improved contact matching 
algorithm which compares aor-user, aor-domain and the received-URI (if 
there is no received URI, then use the real Contact URI).

btw: Dan, if you could provide your matching algorithm, would it be a 
consens to have both in openser and make it configurable.

regards
klaus



More information about the Devel mailing list