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 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 configuration multimedia session setup presence information network appliance control multicasted session emergency handling SIP Multimedia call control Real time streaming Location sensing Network appliance control Floor control SIP for presence SAP Instant message SIP CGI engine LESS/CPL engine Third party call control Emergency handling Service Location Detection (SLP) audio video white board desktop sharing location sensors Web browsers clients RTP: RFC 1889 SDP: RFC 2327RTSP: RFC 2326 SIP Event Notification: RFC 3265 SAP: RFC 2974SIP: RFC 3261 SLP: RFC 2608 Some IETF drafts CPL, SIP 3PCC, SIP Device Control GEOPRIV location format, SIP for IM
Evolving Call SIP SDPRTP Session broadcasting SAP RTSP SIP event notification Location sensing Emergency handling Location tracking Device control ir/x10 MapLynx Message waiting indication Voic handling Presence notification Conferencing floor control Service detection SLP Instant messaging xcon
Interaction SDP SAP RTP RTSP SIP location SLP 3pcc SIP DO SLP SIP NOTIFY MESSAGE DO SIP location
Complementary communication methods Handle no disturbing service, phone spam filter
Internet2 WG PIC trial PUBLISH presence status NOTIFY myself and others’ locations SUBSCRIBE to my location
Ubiquitous Computing SA DA Resource Control (3pcc) Service Location Query SA send audio to SIP UA2 Network Appliance Control SIP UA1 turn on projector SIP UA2call Resource Discovery (SLP UA) audio and video streams Script engine
Service Scenario Bluetooth Home domain SIP and AAA server Visitor Media streams Call Resource Info Location Resources Use Authenticate Register Info
Example call flow
Emergency service Proprietary TCP-based protocol
How to integrate SIP call control Real time streaming Location sensing Network appliance control Floor control SIP for presence SAP Instant message SIP CGI engine LESS/CPL engine Third party call control Emergenc y handling SLP audio video white board desktop sharing location sensors Web browsers clients Inter-process v.s. Build-in
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 to the callee. (call handling with )
Choose a language General programming languages: C/C++, Java, Perl Not for non-programmers Not easy to analyze XML based languages Easy to understand Platform neutral Independent of underlying programming languages SCML (JAIN forum) Tied to the JAIN Java Call Control (JCC) API, with call model for network services. 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 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) switchestriggeractions modifiers
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 <device:turnoff incoming call If the call from my boss Turn off the stereo Accept the call with only audio trigger, switch, modifier, action
Device agent x10vcr SIP user agent SIP LESS packages Basic user agent GenericMediaUI conference web calendar im Presence agent presence Event Use packages to group elements locationsession
When Tom is online, … ………
When I am in a movie theatre, …
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