Hello,
to fix such cases, we added the option to use ruid for updates to database:
http://kamailio.org/docs/modules/stable/modules/usrloc.html#usrloc.p.db_obs_ruid
There were couple of items opened to the tracker at some point, also a
discussion on the mailing list, this being the solution that seemed most
optimal.
Cheers,
Daniel
On 7/16/13 2:47 PM, Alex Hermann wrote:
Hello,
I'm upgrading a 1.5 install to 4.0 and encounter a problem with registrations
from a phone. The phone lost power and after rebooting it starts a new
registration while the old registration hasn't expired yet. The phone uses the
same aor and contact but a different call-id (and cseq) which all seems ok and
used to work with 1.5.x.
Problem 1) When receiving this new registration, kamailio is trying to update
the old registration even though the new registration doesn't match the old
one. The database responds with 0 rows updated because the call-id is
different.
Problem 2) To try to circumvent problem 1, i have usrloc configured to try an
insert instead when the update fails. That insert fails because kamailio is
trying to insert with the same ruid as the old registration.
Combining those, the real problem seems to be that kamailio is assigning the
same ruid to both registrations. How could that be prevented?
The config parameters are set so that it matches my old 1.5 config as much as
possible. No need for outbound, gruu, etc.
(Phone does send an +sip.instance, which happens to be identical in both
registrations. I have gruu_enabled set to 0, so i would expect kamailio to
ignore it as it did in 1.5. The outbound module is not loaded).
modparam("registrar", "min_expires", 60)
modparam("registrar", "default_expires", 1800)
modparam("registrar", "default_q", 0)
modparam("registrar", "path_mode", 0)
modparam("registrar", "use_path", 1)
modparam("registrar", "path_use_received", 1)
modparam("registrar", "gruu_enabled", 0)
modparam("usrloc", "db_mode", 2)
modparam("usrloc", "timer_interval", 20)
#modparam("usrloc", "db_obs_ruid", 0) # param does not really exist
modparam("usrloc", "db_check_update", 1)
modparam("usrloc", "timer_procs", 2)
modparam("usrloc", "hash_size", 14)
modparam("usrloc", "matching_mode", 0)
--
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users