[SR-Users] How to stop NOTIFY from being sent to stable location entries on unreliable network?
yufei.tao at redembedded.com
Thu Sep 5 12:47:23 CEST 2013
I'm using presence on Kamailio 4.0.3. I have in the cfg file:
modparam("presence", "timeout_rm_subs", 0) to cope with unreliable
networks. I have tried setting it to 1, but I saw sometimes server and
client got out of sync, i.e. server removed active_watcher entries when
NOTIFYs time out, while clients still thought the SUBSCRIBE dialogs are
Now I have a problem when client re-registers with different local
IP/port (e.g. changing between wifi and ethernet, or simply crashed and
rebooted), and sends new REGISTER and SUBSCRIBEs using the new local
IP/port. In this case Kamailio still sends NOTIFYs to the old registered
IP:port (as well as to the new one). NOTIFYs to old IP:port last until
expiration it seems. Even though the stale location has been removed
from the location table.
I have a DB trigger to "SET expires=UNIX_TIMESTAMP()" to the
corresponding active_watchers entries as well, when contact is removed
from location table.
So the DB tables have been updated to contain only entries with client's
new IP:port, but it seems that the SUBSCRIBE dialogs are kept in the
memory until expiration, even though they have been expired in the
My question is: is there any ways that I can stop all the NOTIFY
messages from being sent to the stale locations, i.e. remove these
SUBSCRIBE dialogs from memory?
This E-mail and any attachments hereto are strictly confidential and intended solely for the addressee. If you are not the intended addressee please notify the sender by return and delete the message.
You must not disclose, forward or copy this E-mail or attachments to any third party without the prior consent of the sender.
Red Embedded Design, Company Number 06688253 Registered in England: The Waterfront, Salts Mill Rd, Saltaire, BD17 7EZ
More information about the sr-users