Title: The SIMPLE Presence and Event Architecture
1The SIMPLE Presence and Event Architecture
- Henning Schulzrinne ()
- Dept. of Computer Science
- Columbia University
() The SIMPLE architecture is a collaboration of
many individuals.
2Overview
- Motivation
- The SIMPLE architecture and data structure
- Privacy
- Composition
- Location-based services
- Interaction with service creation
3An eco system, not just a protocol
configures
XCAP (config)
SIMPLE policy RPID .
XCON (conferencing)
initiates
carries
SIP
RTSP
SDP
carries
controls
provide addresses
STUN TURN
RTP
4Context-aware communication
- context the interrelated conditions in which
something exists or occurs - anything known about the participants in the
(potential) communication relationship - both at caller and callee
time CPL
capabilities caller preferences
location location-based call routing location events
activity/availability presence
sensor data (mood, bio) privacy issues similar to location data
5The role of presence
- Is the callee likely to be reachable? ?
user-level presence - glue logic for loosely-coupled systems
- events related to calls
- voicemail notification
- call transfer notification
- Events are a superset of presence
- publish, subscribe notify
- in SIMPLE, just differ in their
- event type and bodies (typically, XML)
- privacy policies
- unlike other event systems, cross-domain, with
security - but no content-dependent replication (Siena,
Elvin, )
6The role of presence user-reachability
- Guess-and-ring
- high probability of failure
- telephone tag
- inappropriate time (call during meeting)
- inappropriate media (audio in public place)
- current solutions
- voice mail ? tedious, doesnt scale, hard to
search and catalogue, no indication of when call
might be returned - automated call back ? rarely used, too inflexible
- ? most successful calls are now scheduled by email
- Presence-based
- facilitates unscheduled communications
- provide recipient-specific information
- only contact in real-time if destination is
willing and able - appropriately use synchronous vs. asynchronous
communication - guide media use (text vs. audio)
- predict availability in the near future (timed
presence)
Prediction almost all (professional)
communication will be presence-initiated or
pre-scheduled
7The role of presence for call routing
- Two modes
- watcher uses presence information to select
suitable contacts - advisory caller may not adhere to suggestions
and still call when youre in a meeting - user call routing policy informed by presence
- likely less flexible machine intelligence
- if activities indicate meeting, route to tuple
indicating assistant - try most-recently-active contact first (seq.
forking)
PUBLISH
PA
NOTIFY
translate RPID
LESS
CPL
INVITE
8Basic presence
- Role of presence
- initially can I send an instant message and
expect a response? - now should I use voice or IM? is my call going
to interrupt a meeting? is the callee awake? - Yahoo, MSN, Skype presence services
- on-line off-line
- useful in modem days but many people are
(technically) on-line 24x7 - thus, need to provide more context
- simple status (not at my desk)
- entered manually ? rarely correct
- does not provide enough context for directing
interactive communications
9GEOPRIV and SIMPLE architectures
rule maker
DHCP
XCAP (rules)
target
location server
location recipient
notification interface
publication interface
GEOPRIV
SUBSCRIBE
presentity
presence agent
watcher
SIP presence
PUBLISH
NOTIFY
caller
callee
SIP call
INVITE
INVITE
10Presence data architecture
presence sources
PUBLISH
raw presence document
privacy filtering
create view (compose)
depends on watcher
XCAP
XCAP
select best source resolve contradictions
composition policy
privacy policy
(not defined yet)
draft-ietf-simple-presence-data-model
11Presence data architecture
candidate presence document
raw presence document
post-processing composition (merging)
watcher filter
SUBSCRIBE
remove data not of interest
difference to previous notification
final presence document
watcher
NOTIFY
12Presence data model
calendar
cell
manual
person (presentity) (views)
alice_at_example.com audio, video, text
r42_at_example.com video
services
devices
13Rich presence
- Rich presence more information than open/closed
- automatically derived from
- sensors physical presence, movement
- electronic activity calendars
- Rich information
- multiple contacts per presentity
- device (cell, PDA, phone, )
- service (audio)
- activities, current and planned
- surroundings (noise, privacy, vehicle, )
- contact information
- composing (typing, recording audio/video IM, )
14RPID rich presence
- Provide watchers with better information about
the what, where, how of presentities - facilitate appropriate communications
- wait until end of meeting
- use text messaging instead of phone call
- make quick call before flight takes off
- designed to be derivable from calendar
information - or provided by sensors in the environment
- allow filtering by sphere the parts of our
life - dont show recreation details to colleagues
15RPID rich presence
ltpersongt lttuplegt ltdevicegt
ltactivitiesgt
ltclassgt
ltmoodgt
ltplace-isgt
ltplace-typegt
ltprivacygt
ltrelationshipgt
ltservice-classgt
ltspheregt
ltstatus-icongt
lttime-offsetgt
ltuser-inputgt
16CIPID Contact Information
- More long-term identification of contacts
- Elements
- card contact Information
- home page
- icon to represent user
- map pointer to map for user
- sound presentity is available
17Presence and privacy
- All presence data, particularly location, is
highly sensitive - Basic location object (PIDF-LO) describes
- distribution (binary)
- retention duration
- Policy rules for more detailed access control
- who can subscribe to my presence
- who can see what when
lttuple id"sg89ae"gt ltstatusgt ltgpgeoprivgt
ltgplocation-infogt ltgmllocationgt
ltgmlPoint gmlid"point1 srsName"ep
sg4326"gt ltgmlcoordinatesgt374630N
1222510W lt/gmlcoordinatesgt
lt/gmlPointgt lt/gmllocationgt
lt/gplocation-infogt ltgpusage-rulesgt
ltgpretransmission-allowedgtno lt/gpretransmissi
on-allowedgt ltgpretention-expirygt2003-06-2
3T045729Z lt/gpretention-expirygt
lt/gpusage-rulesgt lt/gpgeoprivgt lt/statusgt
lttimestampgt2003-06-22T205729Zlt/timestampgt lt/tupl
egt
18Privacy policy relationships
common policy
geopriv-specific
presence-specific
future
RPID
CIPID
19Privacy rules
- Conditions
- identity, sphere
- time of day
- current location
- identity as lturigt or ltdomaingt ltexceptgt
- Actions
- watcher confirmation
- Transformations
- include information
- reduced accuracy
- User gets maximum of permissions across all
matching rules - privacy-safe composition removal of a rule can
only reduce privileges - Extendable to new presence data
- rich presence
- biological sensors
- mood sensors
20Example rules document
ltrule id1gt
ltidentitygtltidgtuser_at_example.comlt/idgtlt/identitygt
ltconditionsgt
ltsub-handlinggtallowlt/sub-handlinggt
ltactionsgt
ltprovide-servicesgt ltservice-uri-schemegtsiplt/ser
vice-uri-schemegt ltservice-uri-schemegtmailtolt/se
rvice-uri-schemegt lt/provide-servicesgt ltprovide-per
songttruelt/provide-persongt ltprovide-activitiesgttrue
lt/provide-activitiesgt ltprovide-user-inputgtbarelt/pr
ovide-user-inputgt
ltrulesetgt
lttransformationsgt
21Creating and manipulating rules
- Uploaded in whole or part via XCAP
- XML not user-visible
- Web or application UI, similar to mail filtering
- Can also be location-dependent
- if at home, colleagues dont get presence
information - Possibly implementation-defined privacy levels
22Location-based services
- Finding services based on location
- physical services (stores, restaurants, ATMs, )
- electronic services (media I/O, printer, display,
) - not covered here
- Using location to improve (network) services
- communication
- incoming communications changes based on where I
am - configuration
- devices in room adapt to their current users
- awareness
- others are (selectively) made aware of my
location - security
- proximity grants temporary access to local
resources
23Location-based SIP services
- Location-aware inbound routing
- do not forward call if time at callee location is
11 pm, 8 am - only forward time-for-lunch if destination is on
campus - do not ring phone if Im in a theater
- outbound call routing
- contact nearest emergency call center
- send delivery_at_pizza.com to nearest branch
- location-based events
- subscribe to locations, not people
- Alice has entered the meeting room
- subscriber may be device in room ? our lab stereo
changes CDs for each person that enters the room
24Presence Composition
- composition combines multiple presence or event
sources into one view - remove information stale, contradictory,
redundant - create new information (e.g., new composite
services) - Tries to resolve information conflicts
- update diligence, multiple devices in different
places, no sensor data, - Focus on PIDF/RPID, but probably applicable to
other event sources - Depends on presentity, but not on watcher
- i.e., provides maximum information set for later
stages
25Sources of presence data
- Reported current
- added manually a brief time ago
- assumed correct when entered, but decays
- Reported scheduled
- from a calendar
- Measured device information
- communication status
- Measured by sensors
- location, type of location, activity,
- sensors GPS, acceleration sensors, PIRs, ...
- Derived
- from other presence data
26Composition steps
source
discard closed old
resolve ambiguities
source
union with replacement
combine identical contacts
- Working on policy language that describes desired
composition policy - Complicated policies will require real languages
27Conclusion
- Presence core service enabler for VoIP
- Presence necessary for location-based services
- Presence (special case of) event notification
- IETF SIMPLE architecture first comprehensive
attempt to standardize presence - but some techniques likely applicable to other
systems (e.g., XMPP) - Presence needs
- PUBLISH/SUBSCRIBE/NOTIFY
- data structures for presence data
- rich presence information
- privacy controls
- composition