[OpenSIPS-Users] Presence Aggregation Idea

Saúl Ibarra Corretgé saul at ag-projects.com
Tue Nov 15 10:16:13 CET 2011

Hi Damien,

Sorry for coming a bit late...

On Nov 5, 2011, at 1:29 PM, Damien Sandras wrote:

> Dear all,
> Presence aggregation is a difficult item in the SIP world.
> However, I thought about something and I ignore if it is easily feasible or interesting or if it breaks some rules.
> Most endpoints (if not all) do not support multiple presence statuses. And the SIP RFC's make it difficult to choose which presence to display or event to determine which one is really accurate.
> Having multiple presence statuses occur when the same extension is registered from different devices, and when all of them publish conflicting presence states.
> OpenSIPS decides to order them chronologically (top down). Ekiga is parsing the document and choosing the most recent one (based on a timestamp if any). But others are doing things differently.
> Would it be a good idea to use the 'q' parameter to determine the various resources priorities and have a new setting in the configuration to choose to only notify the state with the highest priority ?
> That way, if you have a softphone and a desk phone, if you set your deskphone to "Busy", but put your softphone as "available" and the softphone has the highest priority, people know you are available. Most people would think that "busy" would win, but it can simply mean that I am reachable but do not want to be reachable through my desk phone. That is different than with Jabber, but telephony is different anyway.
> Well, to summarize, having a "winning" presence device would solve many problems.

I like the approach :-) And I'd like to propose another one, leveraging the recently added GRUU support in OpenSIPS.

(lets assume all devices support GRUU for a moment)

Each device would publish it's own presence and indicate it's own device ID in the "device_id" element of the presence tuple. The presence agent would aggregate al tuples and push the responsibility of deciding what the real state of a user is to the client. I use the PSi jabber client and while it displays a single state for each of my buddies it also displays the state off all devices if I hover the buddy. That is useful sometimes :-)


Saúl Ibarra Corretgé
AG Projects

More information about the Users mailing list