680 likes | 687 Views
An overview of the big transitions in VoIP, from voice and media to rich presence, caller preferences, programmable services, and maintaining reliable systems.
E N D
Moving VoIP beyond the phone Henning Schulzrinne Dept. of Computer Science Columbia University September 2005
Overview • The big transitions in VoIP • Voice, media meta data • rich presence, caller preferences, events, … • Programmable VoIP services • servers and end systems • Spam and spit • Emergency calling (“9-1-1”) • beyond PSTN replacement • Maintaining reliable systems • administratively distributed systems
Philosophy transition PC era cell phone era One computer/phone, many users One computer/phone, one user mainframe era home phone party line Many computers/phones, one user ~ ubiquitous computing embedded VoIP anywhere, any time any media right place (device), right time, right media
Collaboration 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
Evolution of VoIP “how can I make it stop ringing?” long-distance calling, ca. 1930 “does it do call transfer?” going beyond the black phone “amazing – the phone rings” catching up with the digital PBX 1996-2000 2000-2003 2004-
An eco system, not just a protocol configures XCAP (config) XCON (conferencing) SIMPLE policy RPID …. initiates carries SIP RTSP SDP carries controls provide addresses RTP STUN TURN
SIP – 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
SIP is PBX/Centrex ready boss/admin features centrex-style features attendant features from Rohan Mahy’s VON Fall 2003 talk
SIP design objectives • new features and services • support features not available in PSTN • e.g., presence and IM, session mobility • not a PSTN replacement • not just SS7-over-IP • even similar services use different models (e.g., call transfer) • client heterogeneity • clients can be smart or dumb (terminal adapter) • mobile or stationary • hardware or software • client multiplicity • one user – multiple clients – one address • multimedia • nothing in SIP assumes a particular media type Rosenberg/Schulzrinne: draft-rosenberg-sipping-sip-arch-00
Guess, ring and annoy high probability of failure: “telephone tag” inappropriate time (call during meeting) inappropriate media (audio in public place) current solutions: voice mail tedious, doesn’t 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) The role of presence Prediction: almost all (professional) communication will be presence-initiated or pre-scheduled
Context-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
Basic 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, Google, 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 • if user has time to update presence, they are not busy enough to use presence • does not provide enough context for directing interactive communications
Presence data model “calendar” “cell” “manual” person (presentity) (views) alice@example.com audio, video, text r42@example.com video services devices
Presence data architecture presence sources PUBLISH raw presence document privacy filtering create view (compose) depends on watcher XCAP select best source resolve contradictions XCAP privacy policy composition policy (not defined yet) draft-ietf-simple-presence-data-model
Presence data architecture candidate presence document raw presence document post-processing composition (merging) watcher filter remove data not of interest SUBSCRIBE difference to previous notification final presence document watcher NOTIFY
Rich 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, …)
The 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 you’re 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 CPL LESS INVITE
Presence 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 <tuple id="sg89ae"> <status> <gp:geopriv> <gp:location-info> <gml:location> <gml:Point gml:id="point1“ srsName="epsg:4326"> <gml:coordinates>37:46:30N 122:25:10W </gml:coordinates> </gml:Point> </gml:location> </gp:location-info> <gp:usage-rules> <gp:retransmission-allowed>no </gp:retransmission-allowed> <gp:retention-expiry>2003-06-23T04:57:29Z </gp:retention-expiry> </gp:usage-rules> </gp:geopriv> </status> <timestamp>2003-06-22T20:57:29Z</timestamp> </tuple>
Location-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
Location-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 I’m in a theater • outbound call routing • contact nearest emergency call center • send delivery@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
Service creation • Tailor a shared infrastructure to individual users • traditionally, only by vendors (and sometimes carriers) • learn from web models: killer app vertical apps
A different view of presence • Presence is problematic for facilitating calls • rapid changes + large watcher lists high notification volume • privacy: don’t want to tell whole life story to all watchers • on-demand presence information • just before communication • = SUBSCRIBE with zero duration • aggregate presence synchronized calendars • either centralized or peer-to-peer • Likely uses shifting to true events • environment changes (traffic, weather, …) • people changes (visitor stuck in traffic)
Programming VoIP clients • Precursor: CTI • but rarely used outside call centers • Call external programs • e.g., Google/MSN maps, local search • Scripting APIs • e.g., call Tcl or PHP scripts sip-cgi • Controllable • COM, XML RPC • used for media agents in sipc • Embeddable • no UI, just signaling and media
Automating media interaction – service examples • If call from my boss, turn off the stereo call handling with device control • As soon as Tom is online, call him call handling with presence information • Vibrate instead of ring when I am in movie theatre call handling with location information • At 9:00AM on 09/01/2005, find the multicast session titled “ABC keynote” and invite all the group members to watch call handling with session information • When incoming call is rejected, send email to the callee call handling with email
LESS: simplicity • Generality (few and simple concepts) • Uniformity (few and simple rules) • Trigger rule • Switch rule • Action rule • Modifier rule • Familiarity (easy for user to understand) • Analyzability (simple to analyze) modifiers trigger switches actions
LESS: Decision tree • No loops • Limited variables • Not necessarily • Turing-complete
LESS: Safety • Type safety • Strong typing in XML schema • Static type checking • Control flow safety • No loop and recursion • One trigger appear only once, no feature interaction for a defined script • Memory access • No direct memory access • LESS engine safety • Ensure safe resource usage • Easy safety checking • Any valid LESS scripts can be converted into graphical representation of decision trees.
LESS snapshot incoming call <less> <incoming> <address-switch> <address is=“sip:myboss@abc.com"> <device:turnoff device=“sip:stereo_room1@abc.com”/> <media media=“audio”> <accept/> </media> </address> </address-switch> </incoming> </less> If the call from my boss Turn off the stereo Accept the call with only audio trigger, switch, modifier, action
SIP user agent SIP Device agent Presence agent Basic user agent presence Generic Media UI Event x10 vcr LESS packages • Use packages to group elements im email web calendar conference session location
When Tom is online, … <less> <EVENT:notification> <address-switch> <address is="sip:tom@example.com"> <EVENT:event-switch> <EVENT:event is="open"> <location url="sip:tom@example.com"> <IM:im message="Hi, Tom"/> </location> </EVENT:event> </EVENT:event-switch> ……… </less>
When I am in a movie theatre, … <less> <incoming> <location-switch> <location placetype=“quiet”> <alert sound=“none” vibrate=“yes”/> </location> </location-switch> </incoming> </less>
Interfacing with Google 911: caller location IM/presence: location of friends call: “I’m here”
Interfacing with Google show all files from caller Xiaotao Wu
Embedding VoIP: FAA training controls pilot and ATC agents – using multicast and unicast (“landlines”)
Open issues: application sharing • Current: T.120 • doesn’t 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 doesn’t integrate well with control protocols
IETF 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
SIP unsolicited calls and messages • Possibly at least as large a problem • more annoying (ring, pop-up) • Bayesian content filtering unlikely to work • identity-based filtering • PKI for every user unrealistic • Use two-stage authentication • SIP identity work mutual PK authentication (TLS) home.com Digest
Domain Classification • Classification of domains based on their identity instantiation and maintenance procedures plus other domain policies. • Admission controlled domains • Strict identity instantiation with long term relationships • Example: Employees, students, bank customers • Bonded domains • Membership possible only through posting of bonds tied to a expected behavior • Membership domains • No personal verification of new members but verifiable identification required such as a valid credit card and/or payment • Example: E-bay, phone and data carriers • Open domains • No limit or background check on identity creation and usage • Example: Hotmail • Open, rate limited domains • Open but limits the number of messages per time unit and prevents account creation by bots • Example: Yahoo
Reputation service (“Trust paths”) David Carol has sent IM to has sent email to Frank Emily is this a spammer? Bob Alice for people and domains
Emergency calling • FCC mandate: all interconnected VoIP providers must provide E911 service by 11/05 • switch calls to right PSAP (via ESGW attached to switches) • deliver location information to PSAP for dispatch • location entered manually • Problems: • user-entered location no nomadic, mobile users • PSAP infrastructure brittle (38 PSAPs out after Katrina) fully IP-based allow relocation
Location, location, location • Location locate right PSAP & speed dispatch • In the PSTN, local 9-1-1 calls remain geographically local • In VoIP, no such locality for VSPs • most VSPs have close to national coverage • Thus, unlike landline and wireless, need location information from the very beginning • Unlike PSTN, voice service provider doesn’t have wire database information • VSP needs assistance from access provider (DSL, cable, WiMax, 802.11, …)
Options for location delivery • L2: LLDP-MED (standardized version of CDP + location data) • periodic per-port broadcast of configuration information • L3: DHCP for • geospatial (RFC 3825) • civic (draft-ietf-geopriv-dhcp-civil) • L7: proposals for retrievals • by IP address • by MAC address • by identifier (conveyed by LLDP, DHCP or PPP) • via HTTP or maybe SIP
Architecture VSP ISP SIP config DHCP PSAPs outbound proxy DHCP home
LUMP mapping architecture carrier X customers knows all trees; caches results R R R R R R flooding nj.us ny.us bergen.nj.us leonia.bergen.nj.us generalizes to other location-based services