Hi
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 alive.
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 active_watchers table.
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?
Thank you! Yufei -- Yufei Tao Red Embedded
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