Juha Heinanen wrote:
jamey,
thanks for working on the pa module.
PA handles subscribes on behalf of users registered against ser and generates notifies when their presence information changes.
i have a general question on this one. how does the pa module know if the user is willing to let someone to subscribe to its presence information? is there now some standard way for the presence server to ask about it from the user or how it is done?
When I first wrote the code, it would allow subscription from anyone. Later I added a parameter to control whether it does that or uses watcherinfo to manage subscriptions. In this mode, a new watcher is initially unauthorized and PA adds a new entry to the watcherinfo table in the database. PA then sends a watcherinfo event NOTIFY to whoever is subscribed to that event package and adds an entry to the watcherinfo table in the database.
A UA subscribes to its the user's watcherinfo. When it receives a watcherinfo NOTIFY, it uses XCAP (HTTP GET) to fetch the user's watcherinfo from the XCAP server, which is reading from ser's database. The UA asks user whether to authenticate new users and then PUTs back an updated watcherinfo document to the XCAP server. The XCAP server writes to the database and notifies PA via a ser FIFO command. At that point, if a watcher has been authorized and has an active subscription, PA should send a NOTIFY.
I hope that is a useful overview of how it is supposed to work. There are few UA's that support XCAP -- sipc from Columbia is one of them but it's not generally available.
Jamey