Project

General

Profile

Presence » History » Version 27

Adrian Georgescu, 09/18/2012 04:40 PM

1 1 Adrian Georgescu
h1. Presence
2
3 15 Adrian Georgescu
h2. Design Principles
4
5 27 Adrian Georgescu
 * Blink should work with any SIP and XCAP servers that supports SIP SIMPLE standards as Blink. There is nothing that should stop Blink interoperate with any other SIP end-points as far as SIP signaling is concerned (PUBLISH, SUBSCRIBE and NOTIFY methods). 
6
 * Blink relies on a Presence Agent collocated with its SIP Registrar
7
 * Blink uses OMA standards for XCAP storage of its contacts and their policy
8
 * Blink uses only TCP or TLS transports for presence signaling
9
 * The server must support RLS subscriptions
10
 * The server must support storage of OMA XCAP documents
11 1 Adrian Georgescu
12 25 Adrian Georgescu
h3. Standards
13
14 26 Adrian Georgescu
The following standards are fully or partially implemented.
15 25 Adrian Georgescu
16
http://sipsimpleclient.com/projects/sipsimpleclient/wiki/SipFeatures#Presence
17
18 18 Adrian Georgescu
h3. Disclaimer
19 1 Adrian Georgescu
20 19 Adrian Georgescu
There is no guaranty Blink Presence functionality would interoperate with other SIP clients or SIP servers due to the freedom allowed by the standards. 
21 1 Adrian Georgescu
22 27 Adrian Georgescu
23 1 Adrian Georgescu
h3. Interoperability
24
25 21 Adrian Georgescu
Presence is a complex issue and the mechanisms used internally by Blink may not necessarily work under your own server environment. If you want to troubleshot when things do not work as expected, first use the built-in Blink accounts that are designed to work with SIP2SIP domain. As protocol traces for signaling and storage are logged to file, you can easily access such debug information and analyze Blink behavior.
26 1 Adrian Georgescu
27 18 Adrian Georgescu
We can provide support, if you encounter interoperability issues with any the following products and services against Blink has been fully tested:
28 1 Adrian Georgescu
29
 * SIP2SIP.info (a public free SIP service)
30 21 Adrian Georgescu
 * Interoperability with any XMPP domain (using SylkServer SIP/XMPP gateway)
31 22 Adrian Georgescu
 * OpenSIPS/OpenXCAP combination (server software you can run on your premisses)
32 21 Adrian Georgescu
33 1 Adrian Georgescu
You can also enable one SIP2SIP account in your Blink instance to perform presence and contact storage operations while using your preferred SIP provider to make phone calls.
34 27 Adrian Georgescu
35
Blink should be able to co-exist with any other SIP client that is using XCAP documents, that is it will preserve any information it did not create in those documents. Unfortunately, we have not found other clients that behave in the same way. The will be for sure interoperability issues related to accessing the same XCAP documents by different SIP clients.
36
37 18 Adrian Georgescu
38 15 Adrian Georgescu
h3. Support
39
40 23 Adrian Georgescu
As presence require proper infrastructure that many SIP service providers simply lack today, do not complain to us when Presence does not work with your SIP service provider. 
41 15 Adrian Georgescu
42
h2. Contacts
43 12 Adrian Georgescu
44 24 Adrian Georgescu
Contacts are stored on the XCAP server in the resource-lists document under a proprietary name space to avoid conflicts with other end-points that might use the same document as there is no common standard way for how to store a rich address book on a server. This means that different SIP user agents from different vendors cannot read or modify this data in a deterministic way. The contacts in the address-book are then used by standard OMA rls-services and pres-rules XCAP documents. The SIP and XCAP servers need to support OMA style XCAP documents in order to interoperate with Blink.
45 1 Adrian Georgescu
Contacts have two Presence related properties that can changed in Edit Contact Panel Subscriptions section:
46 12 Adrian Georgescu
47 1 Adrian Georgescu
 * Subscribe to Contact's Presence Information
48 8 Adrian Georgescu
 * Allow Contact to see my Presence Information
49 18 Adrian Georgescu
 * If an URI part of the contact is labelled as XMPP, when using a SIP2SIP.info account the session request will be forwarded to an XMPP gateway. 
50 1 Adrian Georgescu
51 4 Adrian Georgescu
h2. Watcher Information
52
53 13 Adrian Georgescu
Using SUBSCRIBE for presence.winfo event package, Blink keeps track of presence watchers and their status.
54 6 Adrian Georgescu
 
55 4 Adrian Georgescu
 * 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.
56
 * Active watchers are shown in Status -> People Watching  My Presence Activity menu
57
58 6 Adrian Georgescu
h2. Published Presence
59 1 Adrian Georgescu
60 13 Adrian Georgescu
Using PUBLISH method for presence event package, the following information is published by Blink:
61 1 Adrian Georgescu
62 7 Adrian Georgescu
h3. Basic Status
63
64
Open or closed.
65
66 14 Adrian Georgescu
h3. Extended Status
67 7 Adrian Georgescu
68 14 Adrian Georgescu
Blink uses a proprietary extension for indicating the extented status compatible with XMPP end-points. 
69 7 Adrian Georgescu
70 6 Adrian Georgescu
h3. Location
71 1 Adrian Georgescu
72 6 Adrian Georgescu
Location is based on CIPID map extension. Location can be disabled per account in Presence section of account preferences.
73
74
h3. Homepage
75
76
A home page can be entered in Presence section of account preferences. Homepage is based on CIPID homepage extension.
77 1 Adrian Georgescu
78 3 Adrian Georgescu
h3. Note
79 6 Adrian Georgescu
80 14 Adrian Georgescu
Presence note can be typed in the text area right to own icon in the main GUI window. Note is attached to the service.
81 5 Adrian Georgescu
82
h3. Status
83 1 Adrian Georgescu
84 7 Adrian Georgescu
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. 
85 1 Adrian Georgescu
86 5 Adrian Georgescu
h3. Icon
87 1 Adrian Georgescu
88
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.
89
90
h3. Offline Presence
91
92
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.
93
94
h3. Media Capabilities
95
96
Type of media supported by the end-point.
97
98
h3. Device Information
99
100
The following information is published:
101
102
 * Hostname
103
 * Time offset
104 9 Adrian Georgescu
 * Idle status
105 1 Adrian Georgescu
 * GRUU contact address
106 8 Adrian Georgescu
107 10 Adrian Georgescu
h2. Subscribe To Presence
108 3 Adrian Georgescu
109 8 Adrian Georgescu
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).
110 1 Adrian Georgescu
 
111 10 Adrian Georgescu
h3. Presence Notifications
112
113 6 Adrian Georgescu
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:
114 1 Adrian Georgescu
115
 * Status icon overlaid on botton right of user icon, indicating away, busy, extended-away or available
116
 * Rectangular presence indicator on right side of the tile to provide a quick overview about availability
117
 * Presence note is rendered on second line, multiple notes and pending authorizations are rotated every 10 seconds
118
 * User icon is retrieved and updated when necessary from URL advertised by user 
119 2 Adrian Georgescu
120
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.
121 1 Adrian Georgescu
122
h2. Sessions
123
124
 * 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.