[SR-Users] SIP contact matching - location db ops

Daniel-Constantin Mierla daniel at asipto.com
Fri Mar 29 11:44:53 CET 2013


Hello,

apparently all the db operations to update/delete contacts are done by 
matching on username, contact, call-id and domain (when use_domain=1) -- 
it is like this for way many years, therefore needs some debate if/how 
to change.

While the module has a matching_mode parameter for various contact 
matching algorithms, it is used for in-memory matching only.
- http://kamailio.org/docs/modules/stable/modules/usrloc.html#matching-mode

IIRC, for initial SIP specs (with no GRUU extensions, etc), aor contact 
address should be used for matching. Call-Id has a relevance only when 
CSeq is lower than previous received REGISTER with same call-id. Do I 
miss any specs requirements?

Following the report on tracker FS#278, matching on path value for db 
ops will be probably very inefficient. Matching on call id for this case 
should be sufficient if the REGISTER comes from different UA. Can it 
happen that same UA sends same REGISTER via two paths? With this 
question I mean if anyone is aware of an UA able to do this.

Relying on previous hop address to use in the db key, would not be 
enough, as the different path can be in the hops before.

I plan to keep for now call-id for db operations when matching mode 
involves path, one way to fix it properly could be usage of ruid as db 
key, but needs further analysis.

Cheers,
Daniel

-- 
Daniel-Constantin Mierla
http://www.asipto.com




More information about the sr-users mailing list