SIP and Beyond Henning Schulzrinne Department of Computer Science

68 Slides2.67 MB

SIP and Beyond Henning Schulzrinne Department of Computer Science Columbia University [email protected] Collaboration in the Enterprise February 10, 2005 (Leesburg, VA) Collaboration in the Enterpris e 1

Overview SIP as the glue for collaboration Context-aware communications The need for standards in collaboration Interoperability & extensibility The future of standards-based collaboration: session mobility central-server conferences application sharing Collaboration in the Enterpris 2

(Early) Adulthood “fully developed and mature” Not quite yet, but no longer a teenager probably need another 6 years to be grown up Responsibilities: Dealing with elderly relatives POTS Financial issues payments, RADIUS Family emergencies 911 Collaboration in the Enterpris 3

Evolution of VoIP “how can I make it stop ringing?” long-distance calling, ca. 1930 “amazing – the phone rings” 1996-2000 “does it do call transfer?” going beyond the black phone catching up with the digital PBX 2000-2003 Collaboration in the Enterpris 20044

Collaboration in transition interorganization multiple technology generations diverse end points intraorganization; small number of systems (meeting rooms) standards-based solutions proprietary (single-vendor) systems Collaboration in the Enterpris 5

What is SIP? Session Initiation Protocol protocol that establishes, manages (multimedia) sessions Developed at Columbia U. (with others) started approximately 1996, first standard 1999 Standardized by also used for IM, presence & event notification uses SDP to describe multimedia sessions IETF (RFC 3261-3265 et al), ca. 2002 3GPP (for 3G wireless) PacketCable (DCS) About 100 companies produce SIP products Microsoft’s Windows Messenger ( 4.7) includes SIP Collaboration in the Enterpris 6

Origins and evolution of SIP multicast 3G (mobile voice) IM & presence voice (PSTN replacement) multimedia cable VoIP Collaboration in the Enterpris centralized conferencing 7

Filling in the protocol gap Service/ delivery synchronous asynchronous push SIP RTSP, RTP SMTP pull HTTP ftp SunRPC, Corba, SOAP (not yet standardized) Collaboration in the Enterpris 8

SIP as service enabler Rendezvous protocol lets users find each other by only knowing a permanent identifier Mobility enabler: personal mobility terminal mobility one terminal, multiple IP addresses session mobility one person, multiple terminals one user, multiple terminals in sequence or in parallel service mobility services move with user Collaboration in the Enterpris 9

Philosophy 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 Collaboration in the Enterpris 10

Basic SIP message flow Collaboration in the Enterpris 11

SIP trapezoid outbound proxy destination proxy (identified by SIP URI domain) 1st request SIP trapezoid rd 2nd, 3 , request [email protected] : 128.59.16. 1 registrar voice traffic RTP Collaboration in the Enterpris 12

message body header fields request line SIP message format response request INVITE sip:[email protected] SIP/2.0 SIP/2.0 200 OK Via: SIP/2.0/UDP here.com:5060 From: Alice sip:[email protected] To: Bob sip:[email protected] Call-ID: [email protected] CSeq: 1 INVITE Subject: just testing Contact: sip:[email protected] Content-Type: application/sdp Content-Length: 147 Via: SIP/2.0/UDP here.com:5060 From: Alice sip:[email protected] To: Bob sip:[email protected] Call-ID: [email protected] CSeq: 1 INVITE Subject: just testing Contact: sip:[email protected] Content-Type: application/sdp Content-Length: 134 v 0 o alice 2890844526 2890844526 IN IP4 here.com s Session SDP c IN IP4 100.101.102.103 t 0 0 m audio 49172 RTP/AVP 0 a rtpmap:0 PCMU/8000 v 0 o bob 2890844527 2890844527 IN IP4 there.com s Session SDP c IN IP4 110.111.112.113 t 0 0 m audio 3456 RTP/AVP 0 a rtpmap:0 PCMU/8000 SDP Collaboration in the Enterpris 13

A 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) SIP (3261) ISUP (3204) sipfrag (3240) Reason (3326) DNS for SIP (3263) Events (3265) REFER (3515) Content types Mostly PSTN Core Digest AKA (3310) Privacy (3323) P-Asserted (3325) Agreement (3329) Media auth. (3313) AES (3853) DHCP (3361) DHCPv6 (3319) Collaboration Security & privacy in the Enterpris Configuration 14

An eco system, not just a protocol configures XCAP (config) SIMPLE XCON (conferencing) policy RPID . initiates carries SIP RTSP SDP carries provide addresses controls RTP STUN TURN Collaboration in the Enterpris 15

Presence as communication facilitator Collaboration in the Enterpris 16

The role of presence Guess-and-ring high probability of failure: “telephone tag” inappropriate time (call during meeting) inappropriate media (audio in public place) Presence-based 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 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 Collaboration in the Enterpris 17

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?” 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 Collaboration in the Enterpris 18

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 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 Collaboration in the Enterpris 19

Presence and event notification Presence special case of event notification “user Alice is available for communication” Human users: 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, ) Events in multimedia systems: REFER (call transfer) message waiting indication conference floor control conference membership push-to-talk system configuration General events: emergency alert (“reverse 911”) industrial sensors (“boiler pressure too high”) business events (“more than 20 people waiting for service”) Collaboration in the Enterpris 20

IETF efforts SIP, SIPPING and SIMPLE working groups Define SIP methods PUBLISH, SUBSCRIBE, NOTIFY GEOPRIV: but also XCON (conferencing) geospatial privacy location determination via DHCP information delivery via SIP, HTTP, privacy policies SIMPLE: architecture for events and rich presence configuration (XCAP) session-oriented IM ( page mode) filtering, rate limiting and authorization Collaboration in the Enterpris 21

Presence data model person“calendar” “cell” “manual” (presentity) (views) services [email protected] audio, video, text [email protected] video devices Collaboration in the Enterpris 22

Presence data architecture presence sources PUBLISH raw presence document create view (compose) XCAP select best source resolve contradictions depends on watcher privacy filtering XCAP privacy policy composition policy (not defined yet) draft-ietf-simple-presence-data-model Collaboration in the Enterpris 23

Presence data architecture candidate presence document raw presence document watcher filter post-processing composition (merging) SUBSCRIBE remove data not of interest difference to previous notification watcher NOTIFY Collaboration in the Enterpris final presence document 24

complexity Composition program: complex conditions and transformations rule-based: most recent; source quality union of tuples capability Collaboration in the Enterpris 25

Future work: sources Composition may need to resolve conflicts Composition relies on source information: calendar says meeting, but user is driving information gathering: sensor, manual, calendar relative trustworthiness (sensor vs. manual) how recently updated? does place and time make activity likely? Will likely add source information to presence data already started for geo data Collaboration in the Enterpris 26

GEOPRIV and SIMPLE architectures rule maker DHCP XCAP (rules) target presentity caller publication interface PUBLISH INVITE location server presence agent notification interface location recipient GEOPRIV watcher SIP presence SUBSCRIBE NOTIFY INVITE Collaboration in the Enterpris callee SIP call 27

RPID rich presence Provide watchers with better information about the what, where, how of presentities facilitate appropriate communications: designed to be derivable from calendar information “wait until end of meeting” “use text messaging instead of phone call” “make quick call before flight takes off” or provided by sensors in the environment allow filtering by “sphere” – the parts of our life don’t show recreation details to colleagues Collaboration in the Enterpris 28

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-recentlyactive contact first” (seq. forking) PA translate RPID CPL NOTIFY LESS INVITE Collaboration in the Enterpris 29

RPID: rich presence person tuple device activities class mood place-is place-type privacy relationship serviceclass sphere status-icon time-offset Collaboration in the Enterpris 30

Rich presence – describing presentity class: label elements for grouping and selection i-belong-to: AOR contact in tuple belongs to proposed element status-icon icon URL with hint for watcher user interface Collaboration in the Enterpris 31

Rich presence – describing service relationship a communication service offered by a family member associate (colleague) assistant supervisor service-class: type of service offered electronic delivery (courier) postal in-person Collaboration in the Enterpris 32

Rich presence – describing state mood of presentity afraid, amazed, angry, annoyed, anxious, ashamed, bored, brave, calm, cold, confused, contented, cranky, curious, depressed, disappointed, disgusted, distracted, embarrassed, excited, flirtatious, frustrated, grumpy, guilty, happy, hot, humbled, humiliated, hungry, hurt, impressed, in awe, in love, indignant, interested, invincible, jealous, lonely, mean, moody, nervous, neutral, offended, playful, proud, relieved, remorseful, restless, sad, sarcastic, serious, shocked, shy, sick, sleepy, stressed, surprised, thirsty, worried likely derived from game state manual input lie detector fMRI (later) Collaboration in the Enterpris 33

Rich presence – describing activities sphere current state and role free text e.g., “work”, “home”, “soccer club”, “PTA” activities: what is the person doing away, appointment, busy, holiday, in-transit, meal, meeting, on-the-phone, performance, permanentabsence, sleeping, steering, travel, vacation Collaboration in the Enterpris 34

Rich presence – describing place and surroundings place-type: type of surroundings place-is: communication properties video: bright, dark audio: noisy, quiet privacy: communication that is private aircraft, airport, bus, car, home, hotel, industrial, library, mall, office, outdoors, public, public-transport, restaurant, school, ship, station, street, theater, train, truck audio, video, text time-offset: minutes from UTC for avoiding middle-of-the-night calls Collaboration in the Enterpris 35

Rich presence – describing user—device interactions How long has the user not provided input to the device? e.g., microphone input, keyboard, mouse activity idle active idle-threshold Collaboration in the Enterpris 36

CIPID: 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 Collaboration in the Enterpris 37

Rich presence: time information Presence is currently about here and now but often only have (recent) past – e.g., calendar or future “will be traveling in two hours” “will be back shortly” allows watcher to plan communication from RPID until time timed-status timed-status now Collaboration in the Enterpris 38

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 Collaboration in the Enterpris 39

Privacy policy relationships common policy geopriv-specific presence-specific RPID future CIPID Collaboration in the Enterpris 40

Privacy rules Conditions identity, sphere time of day current location identity as uri or domain except 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 Collaboration in the Enterpris 41

transformation actions conditions s Example rules document ruleset rule id 1 identity id [email protected] /id /identity sub-handling allow /sub-handling provide-services service-uri-scheme sip /service-uri-scheme service-uri-scheme mailto /service-uri-scheme /provide-services provide-person true /provide-person provide-activities true /provide-activities provide-user-input bare /provide-user-input Collaboration in the Enterpris 42

Creating 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 don’t get presence information” Possibly implementation-defined “privacy levels” Collaboration in the Enterpris 43

Program location-based services Collaboration in the Enterpris 44

SIP extensions and interoperability Collaboration in the Enterpris 45

SIP: designed for managed extensions Engineered for managed long-term extensibility: cannot assume that all implementations implement everything describe what to do with unknown protocol elements registry of header fields indication and discovery of features New SIP header fields: ignored if unknown avoid silly x- headers private, limited-users headers (branded with “P-”) most common extension today New SIP methods provide more information, don’t change behavior rarely done outside standards discovery via OPTIONS request SIP behavior changes via Require, Proxy-Require, Supported, Unsupported header fields names behaviors, not fields Collaboration in the Enterpris 46

How to ensure protocol interoperability Classical Internet approach: pairwise lab testing Interoperability tests (“plug fests”) Certification by neutral third parties multiple implementation, in various stages of maturity results (and embarrassment) remain private can never be complete Lab tests by consulting and publishing companies SIP is using all of these Collaboration in the Enterpris 47

Interoperability efforts IETF SIPPING working group SIPit and SIMPLEt held every 6 months 15th instance of SIPit (and 3rd of SIMPLEt) just completed 200 people from 75 organizations tested around 100 implementations ETSI call flow examples for basic (RFC 3665), telephony (RFC 3666) and services (draft) basic user agent capabilities (draftsinnreich-sipdev-req) TTCN specs SIP Forum Certification Working Group Collaboration in the Enterpris 48

SIPit 15 (Aug. 2004) 128 attendees from 55 organizations US, Canada, Israel, Japan, Taiwan, France, Germany, Belgium, UK, Turkey, India, Sweden, Finland, Norway “The biggest strides between this event and the last were around correct support for TLS. The biggest weakness continues to be proper construction of offers and answers.” Collaboration in the Enterpris 49

Protocol interoperability problems Three core interoperability problems: syntactic robustness “You mean you could have a space there?” implementation by protocol example limiting assumptions (e.g., user name format) see “SIP Robustness Testing for Large-Scale Use”, First International Workshop on Software Quality (SOQA) semantic assumptions often occurs when testing only against common reference implementations need “stress test” (also for buffer overflows) “I didn’t expect this error” mutually incompatible extensions expect extension to make something work Collaboration in the Enterpris 50

Why SIP extensions? Good interoperability in basic call setup Extensions are sometimes indications where work is needed or “I didn’t know this existed” unfortunately, no good SIP Roadmap document some “wrong protocol, buddy” some “I don’t have the resources to participate in standardization” currently, 68 SIP/SIPPING/SIMPLE I-Ds 26 SIP RFCs ( 13 SIPPING RFCs) Collaboration in the Enterpris 51

SIP proprietary extensions Examples based on informal email survey Shared line support to emulate key systems: TCAP over SIP not dialogs, but state of AORs see SIMPLE for LNP general: pick up information along the way Auto-answer support (intercom) Caller-indicated ringing preferences Billing and dialing plan Tone for charged vs. free calls Caller name identification added by proxies visual ringing P-Asserted-Identity extension Call routing diagnostics Collaboration in the Enterpris 52

SIP proprietary extensions, cont’d “upgrade your endpoint!” Caller time zone NAT support STUN servers not widely available – no incentive some use simple HTTP query (just needs cgi-bin) probably biggest advantage that Skype has many, make SIP work well in old world on phone look-alikes reason given: local interest only takes too long to standardize Collaboration in the Enterpris 53

SIP – a bi-cultural protocol overlap dialing DTMF carriage key systems notion of lines per-minute billing early media ISUP & BICC interoperation trusted service providers multimedia IM and presence location-based service user-created services decentralized operation everyone equally suspect Collaboration in the Enterpris 54

The SIP complexity fallacy IAX (for example) is simpler than SIP but you could build the IAX functionality in SIP at just about the same complexity: no proxies no codec negotiation no distributed services Difficulty: extracting those simple pieces from 269 pages of specification SIP still more complex due to signaling-data separation IAX model Signaling & Media Signaling Signaling & Media Signaling Media SIP, H.323, MCGP model Collaboration in the Enterpris 55

On-going IETF work on collaboration Session and service mobility Centralized conferencing Application sharing Collaboration in the Enterpris 56

Service and session mobility Multimedia sessions no longer bound to either desktop or mobile device Service mobility: complementary strengths: mobility vs. large display move service (capabilities, reachability, configuration) temporarily to local device Session mobility: allow active session to move across devices e.g., cell phone call moves to local set of devices and back again Collaboration in the Enterpris 57

Ubiquitous computing SA turn on projector DA Service Location Query Network Appliance Control Script engine SIP UA1 Resource Discovery (SLP UA) Resource Control (3pcc) Collaboration call in the Enterpris SA send audio to SIP UA2 audio and video streams SIP UA2 58

Service scenario Lo cat Bluetooth ion Media streams Visitor Use Resources SIP Authenticate Server Call Call Info Room 123 Resource Info Register Hotel SLP Server Front desk Collaboration in the Enterpris Home domain SIP and AAA server 59

Example: user-adaptive device configuration “all devices that are in the building” RFC 3082? 802.11 signal strength location SLP device controller REGISTER To: 815cepsr Contact: alice@cs PA HTTP tftp SUBSCRIBE to each room 1. discover room URI 2. REGISTER as contact for room URI SIP room 815 SUBSCRIBE to configuration for users currently in rooms Collaboration in the Enterpris 60

XCON: centralized conferencing SIP itself can provide basic conference functionality equivalent to audio/video bridge dial-in, dial-out control and configuration via web page, DTMF or speech interface But need for “scriptable” remote control for creation and management of conferences policy, rights, media Collaboration in the Enterpris 61

XCON System Logical XCON Server TEMPLATE Of the SYSTEM: TEMPLATE Policy: Of TYPE RULES Pre-configured Initial/Default values RESERVATION RESERVATION Policy: Of the INSTANCE: Of TYPE RULES Of TYPE CONFERENCE-INFO STATE Of the CURRENT INSTANCE: CURRENT Policy: Of TYPE RULES CPCP Server Of TYPE CONFERENCE-INFO CCCP Server Focus Conf Event Notification Server Floor Control Server SIP/ PSTN/ SIP NOTIFY/ CCCP CPCP H.323 BFCP Etc. T.120/ Etc. Floor Call CPCP CCCP Notification Control Signaling Client Client Client Client Client Collaboration in the Enterpris 62 Logical XCON Client

Application sharing Currently, no good standard for sharing generic applications pixel-based sharing, not shared text editing or other applications designed to be shared T.128 vnc (we use it in our client) is outdated has limited, special-purpose security integrates poorly with audio/video session setup works poorly across platforms (e.g., fonts) only whole screen Working on new sharing model unifies conference sharing and remote access allows large groups (multicast) and centralized conferences supports hybrid video applications (e.g., embedded movies) leverages existing protocols: RTP for pixel transport SIP for signaling and negotiation PNG for compression Collaboration in the Enterpris 63

Other (implementation) gaps IP phones limited to narrowband audio maybe Skype will provide incentive echo cancellation still generally iffy configuration harder than necessary NAT traversal no audio/video lip sync poor integration of whiteboards Collaboration in the Enterpris 64

Does it have to be that complicated? highly technical parameters, with differing names inconsistent conventions for user and realm made worse by limited end systems (configure by multi-tap) usually fails with some cryptic error message and no indication which parameter out-of-box experience not good Collaboration in the Enterpris 65

Solving the configuration mess Initial development assumed enterprise deployment pre-configured via tftp or (rarely) DHCP not suitable for residential use, except if box is shipped pathetic security – password accessible to anybody who knows MAC address of phone Short term adopt simple default conventions should only need SIP URI (AoR), display name and password provide and expose error feedback realm URI outbound proxy domain not “authentication failure” but “realm not recognized – change to user@domain format” use DNS NAPTR and SRV for STUN server Collaboration in the Enterpris 66

Solving the configuration mess – longer term IETF efforts on configuration management retrieve via HTTP ( TLS) change notification via SIP event notification problem of configuring initial secret remains probably need embedded public keys Still need better diagnostics one-way voice issues authentication failures Collaboration in the Enterpris 67

Conclusion SIP core component of standards-based multimedia collaboration Dial-and-hope model likely to fade for all but teenager communication (and they are using IM ) maybe even for calling your airline transition to (rich) presence to find interaction times Most protocol pieces in place, but gaps in centralized conference control & application sharing Implementations still catching up to standards Collaboration in the Enterpris 68

Back to top button