Presence

Version 9 (Adrian Georgescu, 09/18/2012 03:07 pm) → Version 10/63 (Adrian Georgescu, 09/18/2012 03:08 pm)

h1. Presence

h2. Subscriptions

Contacts have two properties that can changed in Edit Contact Panel Subscriptions section:

* Subscribe to Contact's Presence Information
* Allow Contact to see my Presence Information

h2. Watcher Information

Using standard SIP SUBSCRIBE for presence.winfo event package, Blink keeps track of presence watchers and their status.

* Contacts that have subscribed to our presence are rendered in the 'New Contact Requests' group that is rendered on top of the contacts list. Right click or dragging the contact can be used to allow or deny the request. Blocked contacts are displayed in the Blocked group.
* Active watchers are shown in Status -> People Watching My Presence Activity menu

h2. Published Presence

Using standard SIP PUBLISH method for presence event package, the following information is published by Blink:

h3. Basic Status

Open or closed.

h3. Extended status

Status uses an extension for indicating the extented status compatible with XMPP.

h3. Location

Location is based on CIPID map extension. Location can be disabled per account in Presence section of account preferences.

h3. Homepage

A home page can be entered in Presence section of account preferences. Homepage is based on CIPID homepage extension.

h3. Note

Presence note can be typed in the text area right to own icon in the main GUI window.

h3. Status

Presence status can be changed from the main GUI window and Status menu. Last combination of Presence state and note are saved in the history build at the end of the menu.

h3. Icon

User icon is uploaded to XCAP server using OMA pres-content application, replicated among multiple Blink instances and location of icons storage URL on XCAP server is published in PIDF.

h3. Offline Presence

In status menu, one can change its presence state and also an offline state when Blink is offline. This is done using pidf-manipulation XCAP application.

h3. Media Capabilities

Type of media supported by the end-point.

h3. Device Information

The following information is published:

* Hostname
* Time offset
* Idle status
* GRUU contact address

h3 Example:

<pre>
Internet address: sip:tijmen@test.sip2sip.info
Service: SID-040aafba-3bb5-4209-b6ad-27f513726e8a
Timestamp: 2012-09-18T14:47:53.535157+02:00
Note: I am happy
Basic status: Open
Extended status: Available
Location: Netherlands/Meppel
Contact: user@test.sip2sip.info
Icon: https://xcap.test.sipthor.net/xcap-root/org.openmobilealliance.pres-content/users/sip:user@test.sip2sip.info/oma_status-icon/index
Media capabilities: Audio, Chat, File Transfer, Screen Sharing
Device: 040aafba-3bb5-4209-b6ad-27f513726e8a (Majoor)
Hostname: Majoor
User Agent: Blink Pro 2.0.0 (MacOSX)
Current time: 14:48 (UTC+2)
Device is active
Idle threshold: 600 seconds
</pre>

h2. Subscribe To Subscribed Presence

Using SIP SUBSCRIBE for RLS, Bink subscribes to the SIP addresses stored in rls-services document uploaded on the XCAP server by contacts management actions in the GUI (add/update/delete contacts).

h3. Presence Notifications

Presence information received from the SIP URIs as RLMI notifications from the RLS server is used to update each contact in the contacts list with:

* Status icon overlaid on botton right of user icon, indicating away, busy, extended-away or available
* Rectangular presence indicator on right side of the tile to provide a quick overview about availability
* Presence note is rendered on second line, multiple notes and pending authorizations are rotated every 10 seconds
* User icon is retrieved and updated when necessary from URL advertised by user

Selecting Show Presence Information menu item from contextual contact menu show a panel with detailed information, not all information may have been rendered in the GUI.

h2. Sessions

* When subscribed to Presence, if information is received, the contextual menu of each contact is updated with the possibility of starting a session to a specific device. This requires the remote device to use GRUU.