Title: Advanced Multimedia and Presence Services using Classical and P2P SIP
1Advanced Multimedia and Presence Services using
Classical and P2P SIP
- Henning Schulzrinne
- (with Kundan Singh, Ron Shacham, Xiaotao Wu,
Jonathan Lennox and others) - Department of Computer Science
- Columbia University
- hgs_at_cs.columbia.edu
2Overview
- Quick overview of SIP
- Ring-and-hope ? presence-mediated communications
- Uses for presence
- Old Im on-line
- Location-based services
- Presence-derived call handling
- Presence-derived trust
- Presence and privacy
- Service and session mobility
- Application sharing
3Philosophy transition
One computer, many users
One computer, one user
mainframe era
Many computers, one user
ubiquitous computing
anywhere, any time any media
right place (device), right time, right media
4Evolution of VoIP
how can I make it stop ringing?
does it do call transfer?
long-distance calling, ca. 1930
going beyond the black phone
amazing the phone rings
catching up with the digital PBX
1996-2000
2000-2003
2004-
5Collaboration in transition
inter-organization multiple technology
generations diverse end points
intra-organization small number of systems
(meeting rooms)
standards-based solutions
proprietary (single-vendor) systems
6SIP Overview
7Internet services the missing entry
8Filling in the protocol gap
9SIP as service enabler
- Rendezvous protocol
- lets users find each other by only knowing a
permanent identifier - Mobility enabler
- personal mobility
- one person, multiple terminals
- terminal mobility
- one terminal, multiple IP addresses
- session mobility
- one user, multiple terminals in sequence or in
parallel - service mobility
- services move with user
10What is SIP?
- Session Initiation Protocol ? protocol that
establishes, manages (multimedia) sessions - also used for IM, presence event notification
- uses SDP to describe multimedia sessions
- Developed at Columbia U. (with others)
- Standardized by
- IETF (RFC 3261-3265 et al)
- 3GPP (for 3G wireless)
- PacketCable
- About 100 companies produce SIP products
- Microsofts Windows Messenger (4.7) includes SIP
11Philosophy
- Session establishment event notification
- Any session type, from audio to circuit emulation
- Provides application-layer anycast service
- Provides terminal and session mobility
- Based on HTTP in syntax, but different in
protocol operation - Peer-to-peer system, with optional support by
proxies - even stateful proxies only keep transaction
state, not call (session, dialogue) state - transaction single request retransmissions
- proxies can be completely stateless
12Basic SIP message flow
13SIP trapezoid
destination proxy (identified by SIP URI domain)
outbound proxy
1st request
SIP trapezoid
2nd, 3rd, request
a_at_foo.com 128.59.16.1
registrar
voice traffic RTP
14SIP message format
SDP
15PSTN vs. Internet Telephony
PSTN
Signaling Media
Signaling Media
China
Internet telephony
Signaling
Signaling
Media
Australia
Belgian customer, currently visiting US
16SIP addressing
- Users identified by SIP or tel URIs
- sipalice_at_example.com
- tel URIs describe E.164 number, not dialed
digits (RFC 2806bis) - tel URIs ? SIP URIs by outbound proxy
- A person can have any number of SIP URIs
- The same SIP URI can reach many different phones,
in different networks - sequential parallel forking
- SIP URIs can be created dynamically
- GRUUs
- conferences
- device identifiers (sipfoo_at_128.59.16.15)
- Registration binds SIP URIs (e.g., device
addresses) to SIP address-of-record (AOR)
tel110
sipsos_at_domain
domain ? 128.59.16.17 via NAPTR SRV
173G Architecture (Registration)
mobility management
signaling
serving
interrogating
interrogating
CSCF
proxy
home IM domain
registration signaling (SIP)_
visited IM domain
18SIP is PBX/Centrex ready
boss/admin features
centrex-style features
attendant features
from Rohan Mahys VON Fall 2003 talk
19A constellation of SIP RFCs
Non-adjacent (3327) Symmetric resp.
(3581) Service route (3608) User agent caps
(3840) Caller prefs (3841)
Request routing
Resource mgt. (3312) Reliable prov. (3262) INFO
(2976) UPDATE (3311) Reason (3326)
SIP (3261) DNS for SIP (3263) Events (3265) REFER
(3515)
ISUP (3204) sipfrag (3240)
Mostly PSTN
Core
Content types
Digest AKA (3310) Privacy (3323) P-Asserted
(3325) Agreement (3329) Media auth. (3313) AES
(3853)
DHCP (3361) DHCPv6 (3319)
Configuration
Security privacy
20An 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
21SIP a bi-cultural protocol
- multimedia
- IM and presence
- location-based service
- user-created services
- decentralized operation
- everyone equally suspect
- overlap dialing
- DTMF carriage
- key systems
- notion of lines
- per-minute billing
- early media
- ISUP BICC interoperation
- trusted service providers
22Context-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
23GEOPRIV 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
24The role of presence
- 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
25Basic 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
26Presence 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
27Presence 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
28Presence data model
calendar
cell
manual
person (presentity) (views)
alice_at_example.com audio, video, text
r42_at_example.com video
services
devices
29Rich presence
- More information
- 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, )
30RPID rich presence
31RPID 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
32CIPID 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
33The role of presence for call routing
PUBLISH
- 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)
PA
NOTIFY
translate RPID
LESS
CPL
INVITE
34Presence 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
35Privacy policy relationships
common policy
geopriv-specific
presence-specific
future
RPID
CIPID
36Privacy 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
37Example 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
38Creating 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
39Location-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
40Location-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
41Location detection
42DHCP for locations
- modified dhcpd (ISC) to generate location
information - use MAC address backtracing to get location
information
8020abd5d
DHCP server
CDP SNMP 8020abd5d ? 458/17
DHCP answer staDC locRm815 lat38.89868
long77.03723
458/17 ? Rm. 815 458/18 ? Rm. 816
43Location-based service language
NOTIFY
true
false
action
alert
IM
alert
incoming
proximity
message
outgoing
log
conditions
occupancy
actions
events
notify
call
message
time
transfer
subscription
join
44Program location-based services
45(No Transcript)
46Tracking
47Internet2 WG PIC trial
SUBSCRIBE to my location
NOTIFY myself and others locations
PUBLISH presence status
48Example user-adaptive device configuration
all devices that are in the building RFC 3082?
802.11 signal strength ? location
SLP
device controller
HTTP
PA
tftp
REGISTER To 815cepsr Contact alice_at_cs
SUBSCRIBE to each room
- discover room URI
- REGISTER as contact for room URI
SIP
room 815
SUBSCRIBE to configuration for users currently in
rooms
49Session mobility
- Walk into office, switch from cell phone to desk
phone - call transfer problem ? SIP REFER
- related problem split session across end devices
- e.g., wall display desk phone PC for
collaborative application - assume devices (or stand-ins) are SIP-enabled
- third-party call control
50How to find services?
- Two complementary developments
- smaller devices carried on user instead of
stationary devices - devices that can be time-shared
- large plasma displays
- projector
- hi-res cameras
- echo-canceling speaker systems
- wide-area network access
- Need to discover services in local environment
- SLP (Service Location Protocol) allows querying
for services - find all color displays with at least XGA
resolution - slp//example.com/SrvRqst?public?typeprinter
- SLP in multicast mode
- SLP in DA mode
- Need to discover services before getting to
environment - is there a camera in the meeting room?
- SLP extension find remote DA via DNS SRV
51Session mobility
Local Devices
Transcoder
Internet
SLP DA
SLP SA
SLP UA
SIP SM
SIP UA
SIP UA
Correspondent Node (CN)
SLP SIP RTP
SIP SM
SIP UA
SLP UA
Mobile Node (MN)
52Presence for spam prevention
- VoIP spam (spit) and IM spam (spim) likely to
be more annoying than email spam - Subscription to another person is indication of
mutual trust - other person allows me to see their status ?
trusts me - Thus, use watcher list (who is watching me) as
trust vector
53Conferencing issues
54Open issues for conferencing standardization
- Multi-device systems and session mobility
- Conference floor control ? BFCP
- simple RPC-like protocol
- Centralized conference control (XCON WG)
- still struggling with control model
- set get variables (SNMP)
- RPC-like model (? SOAP, XML-RPC, NETCONF)
- send descriptions?
- forms (XForms?)?
55XCON System
56Open issues application sharing
- Current T.120
- doesnt integrate well with other conference
control mechanisms - hard to make work across platforms (fonts)
- ill-defined security mechanisms
- Current web-based sharing
- hard to integrate with other media, control and
record - generally only works for Windows
- mostly limited to shared PowerPoint
- Current vnc
- whole-screen sharing only
- can be coerced into conferencing, but doesnt
integrate well with control protocols
57IETF effort standardized application sharing
- Remote access application sharing
- Four components
- window drawing ops ? PNG
- keyboard input
- mouse input
- window operations (raise, lower, move)
- Uses RTP as transport
- synchronization with continuous media
- but typically, TCP
- allow multicast ? large group sessions
58Peer-to-peer approaches for SIP
- Henning Schulzrinne
- Dept. of Computer Science
- Columbia University
59Applications
- Small stand-alone networks
- 2-50
- SOHO, events, emergency coordination
- may not have access to Internet infrastructure
- Corporate size networks
- 50-1000
- single administrator
- Global-scale networks
- 1000-100 million
- consumer applications
- serious trust issues
60Three basic approaches
- Full distribution and search
- similar to Bonjour
- scales to small, local networks
- DHT built using SIP
- see Kundan/Schulzrinne and Cao/Bryan/Lowekamp
- dedicated to VoIP
- Skype model
- Using an external DHT (Columbia)
- using OpenDHT as generic service
- used by multiple applications
- can provide mapping or pointer to mapping
SIP-managed DHT
OpenDHT
61P2P-SIP Implementation in SIPc
- OpenDHT
- Trusted nodes
- Robust
- Fast enough (lt1s)
- Identity protection
- Certificate-based
- SIP id email
- P2P for
- Calls, IM, presence, offline message, STUN
server discovery and name search
62P2P-SIP What is OpenDHT?
- Service model, unlike earlier library model of
Chord or CAN - DHT accessed via SunRPC XML-RPC
- Easy deployment and maintenance
- 200-300 Bamboo DHT nodes on PlanetLab
- Public DHT service running since April 2004
- Many existing applications i3, CFS, Ostream,
HIP, - DHT API (server side on Bamboo nodes)
- PUT(key,value,H(secret),ttl) where H() is SHA1
- GET(key) ? (value,H(secret),remaining-ttl)
- REMOVE(key,H(value),secret,ttl)
- ReDiR API (client side for lookup/join/leave)
- Can build anycast, multicast, range search using
this - Fair resource (disk) allocation among clients (IP
addr)
63Hybrid architecture
- Cross register, or
- Locate during call setup
- DNS, or
- P2P-SIP hierarchy
64Conclusion
- Lots of open issues
- Motivation for P2P?
- Low operational cost?
- Ease of use?
- Reliability?
- What to use p2p for?
- identifier lookup (location server) ?
- locating a NAT traversal server (STUN) ?
- media file storage (voice mail)
- presence
- conferencing
- Some architectural open issues
- trust (sybil, byzantine failures)
- man-in-the-middle
- identifier ownership
- prevention? at least, detection
- reliability
65Conclusion
- Basic multimedia communication solutions
available - scalable, secure, good quality
- Media delivery ? controlled interaction
- Binary presence ? rich presence
- Presence as enabler of loosely-coupled advanced
services - location-based services
- serve as service script inputs
- trust indicator for spit/spim prevention
- Application sharing as missing link
- P2P mode as complementary model