This patch has a bug which leads to false contact removal.
This happens when UA reconnects to a proxy from the same src port and
sends new REGISTER with the same Contact. In that case kamailio updates
an existing contact and I forgot to update tcp connection id in the
ucontact_t object.
I've fixed this bug in my production system (kamailio-3.2) and it works
well.
The patch for 4.0.3 will be ready tonight.
Hello,
I applied your patches with some changes. There is no need to store
tcp connection id in other structure in the core, it is stored in
msg->rcv.proto_reserved1.
You have to add the documentation for the new usrloc parameter, in xml
files from modules/usrloc/doc/ - send over the patch and I will commit
it as well.
Cheers,
Daniel
On 8/29/13 12:47 PM, Vitaliy Aleksandrov wrote:
Thanks community for all replies.
I did the second try. Result is in the attachment.
This time a did it in the way proposed by Daniel-Constantin Mierla.
All job is done in timer process when it iterates through all
registrations looking for expired ones.
It works for all database modes except DB_ONLY.
I'm not sure about tcpconn_get() / tcpconn_put() functions.
tcpconn_get() increments ref counter, but there are several function
to decrement it: tcpconn_put(), tcpconn_chld_put() and
atomic_dec_and_test(). When I was looking for examples in other
modules I saw that tcp_read.c uses tcpconn_chld_put(), but forward.h
and msg_translator.c uses only tcpconn_get() without decrementing ref
counter at all.
It would be great if somebody more experienced shed some light on this.
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
--
Daniel-Constantin Mierla -http://www.asipto.com
http://twitter.com/#!/miconda -http://www.linkedin.com/in/miconda
Kamailio Advanced Trainings - Berlin, Oct 21-24; Miami, Nov 11-13, 2013
- more details about Kamailio trainings
athttp://www.asipto.com -