Iñaki Baz Castillo wrote:
El Tuesday 09 October 2007 13:19:40 Anca Vamanu escribió:
Hi,
After reading the thread, I also came to your conclusion, that by sending Publish with no bodies for refresh the problem should be solved- thus I made the commit. Unfortunately, I soon realized that there was a mistake in the reasoning. The rewriting does not happen. If the pua_usrloc and the client itself send each an initial Publish messages with no Sip-If-Match header, it will result in 2 records inserted in presentity table- two different etags and no rewriting. And then, the Notifies send will have as a body the aggregation of this two. In presence module, the method of aggregation used is: most recent, first. Most clients look only at the first tuple (xlite, for example, does so). So, the notified state alternates according to the Publish message received last. Now I don't see a means to make pua_usrloc and the client send Publish messages work. I will do some more thinking though. The best is probably, to find a fairly good method to deduce for which clients to call pua_set_publish.
Just in this moment I've open a report for this wish:
http://sourceforge.net/tracker/index.php?func=detail&aid=1810097&gro...
As I say in the report, couldn't be possible pua_usrloc to include a tag in its PUBLISH's to discard them in "presentity" table if other entries exist?
Pua_usrloc is meant to be independent from presence server, there isn't the need for the two to be collocated on the same machine. So, pua_usrloc can not access the presentity table. Therefore, to deduce if some other record exists in presentity_table the Subscribe- Notify mechanism should be used and this makes the problem quit complicated.
regards, Anca