210 likes | 230 Views
SIPc, a Multi-function SIP User Agent. Xiaotao Wu and Henning Schulzrinne. Background. End systems can perform more functions CPU, memory, big display Moore’s law Routing function in the network, the rest …… Service mobility vs. Direct user/device interaction P2P system
E N D
SIPc, a Multi-functionSIP User Agent Xiaotao Wu and Henning Schulzrinne
Background • End systems can perform more functions • CPU, memory, big display • Moore’s law • Routing function in the network, the rest …… • Service mobility vs. Direct user/device interaction • P2P system • End system services • Multi-function interaction • Programmable • Ubiquitous • Smart • Fail-safe • Feature interaction
Outline • Overview • Multi-function integration • Multi-function interaction • New service examples • Fail-safe handling • Location-based services • Ubiquitous computing • Emergency handling • Program end system services
Overview of SIPc functions emergency configuration handling multimedia session setup presence network multicasted session information appliance control Email clients Web browsers Instant message Network appliance control Third party call control Real time streaming audio video Emergency handling SIP Multimedia call control SIP CGI engine SAP white board location sensors Location sensing Floor control SIP for presence LESS/CPL engine Service Location Detection (SLP) desktop sharing Some IETF drafts CPL, SIP 3PCC, SIP Device Control GEOPRIV location format, SIP for IM SIP: RFC 3261 SAP: RFC 2974 RTSP: RFC 2326 SDP: RFC 2327 RTP: RFC 1889 SLP: RFC 2608 SIP Event Notification: RFC 3265
Evolving Conferencing floor control Device control Presence notification ir/x10 xcon Location tracking SIP event notification Service detection Message waiting indication Location sensing SIP SLP Voicemail handling Call Emergency handling RTP SDP MapLynx RTSP Instant messaging Session broadcasting SAP
Interaction SIP SLP DO SLP SAP 3pcc SIP DO SIP location SDP location RTP RTP SIP SIP NOTIFY SIP location MESSAGE RTP RTSP
Complementary communication methods Handle no disturbing service, phone spam filter
Internet2 WG PIC trial SUBSCRIBE to my location NOTIFY myself and others’ locations PUBLISH presence status
Ubiquitous Computing SA DA SA turn on projector Service Location Query send audio Resource to SIP Network Discovery UA2 Appliance (SLP UA) Control audio and Resource Script video Control engine streams (3pcc) SIP UA1 SIP call UA2
Service Scenario SIP Server Room 123 Hotel Front desk SLP Server Media streams Bluetooth Authenticate Call Use Location Resources Visitor Call Info Resource Info Home domain Register SIP and AAA server
Emergency service Proprietary TCP-based protocol
Automate the interaction • If a call from my boss, turn off the stereo. (call handling with device control) • When Tom is online, call him. (call handling with presence information) • Vibrating device instead of ringing when I am in movie theatre. (call handling with location information) • At 9:00AM on 09/09/2005, find the broadcasted session titled “ABC keynote” and invite all the XYZ group members to watch. (call handling with session information) • When a call get rejected, send an email to the callee. (call handling with email)
Choose a language • XML based languages • Easy to understand • Platform neutral • Independent of underlying programming languages • General programming languages: C/C++, Java, Perl • Not for non-programmers • Not easy to analyze • CCXML (W3C) • Call control support for dialog systems, such as VoiceXML systems • Cannot handle other Internet service events, e.g., presence events • Cannot perform the actions other than call control • SCML (JAIN forum) • Tied to the JAIN Java Call Control (JCC) API, with call model for network services. • CPL (IETF) • Designed for proxy servers, no end system actions, like ‘accept a call’ • Language for End System Services (LESS) • Extended from CPL, follow the tree-like structure • Provide more functions for end system services
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
Decision tree • No loops • Limited variables • Not necessarily • Turing-complete
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
LESS packages SIP user agent SIP Device agent Presence agent Basic user agent presence Generic Media UI Event x10 vcr • 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>
Conclusion and future work • End systems can perform services • Multi-function integration introduces new services in end systems • Use LESS to program the new services • More functions • Gaming