Klaus Darilion wrote:
Hi Jamey!
Im interested in the presence agent module, especially in including geographical user information into the presence data.
What is the body type of the publication/notifications? Is it XML based presence like used by Windows Messenger and Kphone? Is this format defined somewhere? Is this the same as this old draft? http://www.iptel.org/info/players/ietf/presence/outdated/draft-rosenberg -impp-pidf-00.txt
The presentity table includes x and y colums? Are these to represent the geographical location of the publisher?
Hi Klaus,
The body type is application/cpim-pidf+xml with a couple extensions modeled on geopriv and civil location. The same body type is accepted by the code that handles PUBLISH and updates the database. The NOTIFY messages are generated from that. We have an 802.11 location tracking system that generates PUBLISH messages that include site, floor, room, x, y and radius of the position estimate. Our location tracking service yields roughly office-level resolution for the two floors of our building that we occupy. The position data is for the client device from which a user is registered. We also have PHP code for a presence portal that lets users update their location manually if no location service is available or if they wish to override the location provided by the location service.
The presence agent still needs some work -- it currently allows anyone to subscribe. I have mostly coded support for the watcherinfo event package and for xcap access to presence-lists, so that users can be notified when a new person requests to subscribe to their presence info and so that users can use xcap to authorize/deny those requests. I have been working with Xiaotao Wu at Columbia to debug that against the sipc user agent and I've been adding code to linphone. It would be great if someone wants to add similar support to kphone. I may get to kphone but I have a lot on my plate right now.
The other thing that the presence agent should have with respect to physical location is a way for a user to specify the resolution of the location information to be shared with other users. For example, I might want to let people know I'm on the 12th floor here but not which office I'm in.
Another problem with the presence agent is that Windows Messenger does not accept the NOTIFY messages, so none of your contacts looks to be online. I'm not interested in supporting a UA that does not support the internet draft standards but if minor tweaks would make this work that would be OK.
The final issue that comes to mind with the PA is that it is set up to aggregate presence for all user agents. It handles SUBSCRIBE and PUBLISH, and it generates NOTIFY. It gets basic online/offline status from the usrloc module but depends on the UA or other presence agent to PUBLISH more detailed information.
I hope this is helpful. I am planning to write a document that outlines how this works and what is needed from UA's. I imagine that review and revision of that document will lead to changes in the PA implementation to make the whole system work better.
Jamey