Presence Service Russ Clark Mobile Applications and Services September 23, 2009 Friday, September 25, 2009 What is Presence? • A service that indicates the ability and willingness of a user to communicate • • Supports multiple devices and interfaces • Nearly all interesting IMS applications should leverage the presence service • Instant Messaging (IM) is closely linked with Presence Friday, September 25, 2009 Perhaps the most important SIP application service for the IMS architecture Presence Architecture PUBLISH SUBSCRIBE NOTIFY PA Presence Agent The main presence servers Presentity Presence Entity Friday, September 25, 2009 PUA Presence User Agent Gathers presence info and publishes it to the service. Watchers End users or other Services Presence Standards • RFC 2778 - A Model for Presence and Instant Messaging - lots of terminology definitions • • RFC 3856 - Presence Event Package for SIP • OMA: Open Mobile Alliance • Friday, September 25, 2009 RFC 3863 - Presence Information Data Format (PIDF) • SIMPLE: SIP Instant Messaging and Presence Leveraging Extensions from the Presence and Availability working group 3GPP Presence Service Framework Presence User Agents Each PUA may present different types of presence information • • • • Online Status - open, closed Availability - available, busy, current activity Available for - text chat, voice, video, etc Mood - tolerance for interrupts The PA (service) must merge all of these inputs to create a unified view of the Presentity. Other information is available based on the IMS registration status. Friday, September 25, 2009 Privacy Users must be able to control • • • • what information the PUA can access what information is published to the PA which watchers can see the data which subsets of the data are available to each watcher For usability, some form of group feature is necessary. Friday, September 25, 2009 Presence Data Format PIDF: Presence Information Data Format • • • • • Friday, September 25, 2009 RFC 3863 XML document format minimal specification designed to be extensible many current efforts to extend this • • additional semantics, details • geographic location temporal information - when this data applies Presence Data Format Friday, September 25, 2009 Presence Mood? Friday, September 25, 2009 Friday, September 25, 2009 Friday, September 25, 2009 Presence List Management We need to manage lists of contacts with whom we share presence information. • A list of watchers, identified by their public identifier (e.g. sip:Russ.Clark@gatech.edu) • • Need to be able to add, modify, delete entries The list is maintained in a separate service • • Instead of subscribing individually to presence information for all of your contacts, you subscribe to the list. • Friday, September 25, 2009 RLS: Resource List Server The list server subscribes to the individuals Remember This? Friday, September 25, 2009 IMS Presence Architecture 17.3. WATCHER SUBSCRIPTION 339 +#@ +!8B!3C ./&"0#) B!3C +,!8B!3C D738B!3C 532 +'9532 +:9532 +:9532 309+0 !""#$$ %#&'()* +12324 +;92; +,!-8./&"0#) +;9A; 633 +#=9+'9>? +'9<' 312324 !""#$$ %#&'()* +;92; +;9A; 374 +12324 +,!./&"0#) ,& 512324 IMS Core Services Figure 17.2: SIP-based presence architecture in the IMS (From The 3G IP Multimedia Subsystem (IMS) Second Edition c 2006 John Wiley & Sons, Ltd) ! Gonzalo Camarillo and Miguel A. Garcı́a-Martı́n The flow is illustrated in Figure 17.3. The watcher application residing in the IMS terminal sends a SUBSCRIBE request (1) addressed to her list (e.g., sip:alice-list@ Friday, September 25, 2009 home1.net). The SUBSCRIBE request contains an Event header field set to eventlist to IMS Presence Architecture 17.3. WATCHER SUBSCRIPTION 339 Core Presence Server +#@ +!8B!3C ./&"0#) B!3C +,!8B!3C D738B!3C 532 +'9532 +:9532 +:9532 309+0 !""#$$ %#&'()* +12324 +;92; +,!-8./&"0#) +;9A; 633 +#=9+'9>? +'9<' 312324 !""#$$ %#&'()* +;92; +;9A; 374 +12324 +,!./&"0#) ,& 512324 Figure 17.2: SIP-based presence architecture in the IMS (From The 3G IP Multimedia Subsystem (IMS) Second Edition c 2006 John Wiley & Sons, Ltd) ! Gonzalo Camarillo and Miguel A. Garcı́a-Martı́n The flow is illustrated in Figure 17.3. The watcher application residing in the IMS terminal sends a SUBSCRIBE request (1) addressed to her list (e.g., sip:alice-list@ Friday, September 25, 2009 home1.net). The SUBSCRIBE request contains an Event header field set to eventlist to IMS Presence Architecture 17.3. WATCHER SUBSCRIPTION 339 Resource List Server +#@ +!8B!3C ./&"0#) B!3C +,!8B!3C D738B!3C 532 +'9532 +:9532 +:9532 309+0 !""#$$ %#&'()* +12324 +;92; +,!-8./&"0#) +;9A; 633 +#=9+'9>? +'9<' 312324 !""#$$ %#&'()* +;92; +;9A; 374 +12324 +,!./&"0#) HTTP/XCAP ,& XML Configuration Access Protocol 512324 Figure 17.2: SIP-based presence architecture in the IMS (From The 3G IP Multimedia Subsystem (IMS) Second Edition c 2006 John Wiley & Sons, Ltd) ! Gonzalo Camarillo and Miguel A. Garcı́a-Martı́n The flow is illustrated in Figure 17.3. The watcher application residing in the IMS terminal sends a SUBSCRIBE request (1) addressed to her list (e.g., sip:alice-list@ Friday, September 25, 2009 home1.net). The SUBSCRIBE request contains an Event header field set to eventlist to IMS Presence Architecture 17.3. WATCHER SUBSCRIPTION Internal Watcherother services that use your presence info 339 Internal PUA- gathers info from HSS +#@ +!8B!3C ./&"0#) B!3C +,!8B!3C D738B!3C 532 +'9532 +:9532 +:9532 309+0 !""#$$ %#&'()* +12324 +;92; +,!-8./&"0#) +;9A; 633 +#=9+'9>? +'9<' 312324 !""#$$ %#&'()* +;92; +;9A; 374 +12324 +,!./&"0#) ,& 512324 Figure 17.2: SIP-based presence architecture in the IMS (From The 3G IP Multimedia Subsystem (IMS) Second Edition c 2006 John Wiley & Sons, Ltd) ! Gonzalo Camarillo and Miguel A. Garcı́a-Martı́n The flow is illustrated in Figure 17.3. The watcher application residing in the IMS terminal sends a SUBSCRIBE request (1) addressed to her list (e.g., sip:alice-list@ Friday, September 25, 2009 home1.net). The SUBSCRIBE request contains an Event header field set to eventlist to 342 17. THE PRESENCE SERVICE IN THE IMS Presence CHAPTER Messages - Publishing =&(?()*@()? A(B(@%C D%@EF&G !"# $%&'()*+ =&(?()*@()?/4F'%/D%@EF&G 056#67 ,-./0123!#4 #56#67 09 ,8./0123!#4 HI*+J*@(F)/FK ()(@(*+/K(+@%&/L&(@%&(* ,:./0123!#4 ,N./8<</=> ,M./8<</=> ,;./8<</=> Figure 17.5: The IMS terminal publishing presence information (From The 3G IP Multimedia Subsystem (IMS) Second Edition c 2006 John Wiley & Sons, Ltd) ! Gonzalo Camarillo and Miguel A. Garcı́a-Martı́n 17.6 Presence Optimizations We discussed in Section 4.15.1 a few optimizations that are applicable to the event notification framework in SIP. These are generic optimizations that apply to any event package. Friday, September 25, 2009 Presence Messages - Subscribing To A List CHAPTER 17. THE PRESENCE SERVICE IN THE IMS 340 :&(B()*C()B D(E(C%F 9%CGH&I !"# $%&'()*+ :&(B()*C()B/JH'%/9%CGH&I 562#27 ,-./#01#23!14 #62#27 3=# ,<./#01#23!14 4K*+L*C(H)/HM ()(C(*+/M(+C%&/N&(C%&(* ,>./#01#23!14 ,P./<@@/:A ,R./9:$!7; ,-@./<@@/:A ,O./<@@/:A ,Q./9:$!7; ,--./<@@/:A ,?./<@@/:A ,8./9:$!7; ,-<./<@@/:A #LSEN&(TC(H)/CH/%*NU/HM/CU% T&%E%)C(C(%E/()/CU%/+(EC ,-O./9:$!7; ,-P./<@@/:A ,-?./9:$!7; ,-8./<@@/:A ,->./9:$!7; ,-Q./<@@/:A Figure 17.3: Watcher subscription to her own list (From The 3G IP Multimedia Subsystem (IMS) Second Edition c 2006 John Wiley & Sons, Ltd) ! Friday, September 25, 2009 Gonzalo Camarillo and Miguel A. Garcı́a-Martı́n node that recorded the route: the S-CSCF in the RLS network. The lack of this S-CSCF record route avoids the S-CSCF becoming locked when the presentity is not registered. So, Presence Messages - RLS subscribes 17.5. PRESENCE PUBLICATION 341 )/%$456789: )/% ;59<=>?6=>@$28<5$456789: %,(%(- *,(%(- 2%% %,(%(- N0 %CJKE9=L6=8> 68$6M5$B=K6 !"#$%&'%()*'+ +A?BC?6=8>$8D =>=6=?B$D=B659$E9=659=? !1#$%&'%()*'+ !3#$/*) !.#$/*0 !O#$%&'%()*'+ +A?BC?6=8>$8D =>=6=?B$D=B659$E9=659=? !S#$%&'%()*'+ !"F#$1FF$GH !P#$1FF$GH !"1#$4G;*-I !"3#$1FF$GH !Q#$1FF$GH !R#$1FF$GH !""#$4G;*-I !".#$1FF$GH Figure 17.4: The RLS subscribes to a presentity (From The 3G IP Multimedia Subsystem (IMS) Second Edition c 2006 John Wiley & Sons, Ltd) ! Friday, September 25, 2009 17.5 Presence Publication Gonzalo Camarillo and Miguel A. Garcı́a-Martı́n Scaling the service The PA and RLS are important for scaling the service to multiple PAs and multiple watchers Friday, September 25, 2009 • • I send my presence updates once to the PA • If multiple lists are subscribed, the RLS only needs to fetch the info once from the PA If multiple individuals are subscribed, they can each get info from the PA Presence Data Volume Large volumes of data with frequent updates Need to manage the impact on the network and on the devices. 1) Event Throttling • Watcher sets minimum update interval 2) SIP Signaling Compression • • • Friday, September 25, 2009 RFC 3320, 3321 SIGCOMP A dictionary based compression algorithm Between UE and Proxy - focused on the wireless link Presence Data Volume 3) Partial Notification • Much of the information in a presence update is redundant • A partial update indicates only the information that has changed • In SUBSCRIBE, watcher includes the following: Accept: application/pidf-partial+xml • • Friday, September 25, 2009 First NOTIFY message includes the full presence state Subsequent NOTIFY messages have only changes Jabber/XMPP • • Started as the Jabber Project in 1998 • • • Now managed by the XMPP Standards Foundation Now an open source project known as XMPP: Extensible Messaging and Presence Protocol RFC’s 3920, 3921, 3922, 3923 Uses HTTP for data transfer • • connection oriented, standard ports Data specification is based on XML Friday, September 25, 2009 XMPP Presence Messages • • • • • unavailable -- Signals that the entity is no longer available for communication. • probe -- A request for an entity's current presence; SHOULD be generated only by a server on behalf of a user. • error -- An error has occurred regarding processing or delivery of a previously-sent presence stanza. Friday, September 25, 2009 subscribe -- The sender wishes to subscribe to the recipient's presence. subscribed -- The sender has allowed the recipient to receive their presence unsubscribe -- The sender is unsubscribing from another entity's presence. unsubscribed -- The subscription request has been denied or a previouslygranted subscription has been cancelled. XMPP Presence Messages • Friday, September 25, 2009 Show examples in RFC http://www.ietf.org/rfc/rfc3921.txt Universal Presence • Today, we have many different presence services. • We really need to combine this in one federated presence service. • I shouldn’t have to have all of these clients running. • This is a place that IMS could perhaps play a role. Friday, September 25, 2009