Title: LESS effort, more services
1LESS effort, more services
- Xiaotao Wu
- Henning Schulzrinne
- Dept. of Computer Science
- Columbia University
2The Language for End System Services (LESS)
- Simple
- Based on CPL enhancement and extension
- Four kinds of elements trigger, switch, action,
modifier - Tree-like structure simplifies feature
interaction analysis - Safe
- Type safety XML-based, no user defined variables
- Control flow safety tree-like structure without
back-reference - No direct memory access
- Default behavior for every tree branch
- Handle user interactions and media operations
- Beyond call control
- presence, IM, Web, mid-call handling, location
3Supported services
- Services in ITU Q.1211
- ABD, ACB, CFC, CHA, QUE, CRG, OCS,
- Services in 5ESS switches
- Attendant camp-on, Automatic recall,
- Services in CSTA Phase III
- defined as signaling actions in LESS, e.g.,
mediaupdate - Location-based services
- location-switch
- Event-based services
- approve, deny, subscribe, notify
- Mid-call handling
- transfer, update media attributes
- Call queuing
- Other Internet services
- - mail, send IM
4LESS triggers
- incoming incoming call handling
- timer timer triggered actions
- UIcommand user interaction commands
- IMmessage incoming instant messaging
- Eventsubscription incoming subscription
- Eventnotification incoming notification
5LESS switches
- time-switch make decisions based on time
- address-switch make decisions based on caller,
callee - priority-switch make decisions based on call
priority - string-switch make decisions based on subject,
- language-switch make decisions based on
languages - status-switch make decisions based on users
status (remote user or local user, status
includes presence, activity, mood, , as listed
in RPID) - Eventevent-switch check values in event
notifications - LOCwhere-switch check users physical location
information (remote or local user) - LOCwhere-relation-switch check relative
physical locations between two people
6LESS actions
- accept accept an incoming call
- reject reject an incoming call
- redirect redirect an incoming call
- authenticate authenticate an incoming request
- call make an outgoing call
- terminate disconnect a call
- wait wait for a certain time before next action
- mail send email
- log log request handling process
- Mediamediaupdate update media attributes
- Midcalltransfer transfer a call
7LESS actions
- Midcallmerge merge multiple calls
- UIalert alert user
- UIgetinput get user input
- IMsendmsg send an instant message
- Eventapprove approve subscription
- Eventdeny deny event subscription
- Eventdefer defer the decision on event
subscription - Eventsubscribe send subscription out
- Eventnotify send notification out
- Queueenqueue put a call and its context into a
queue - Queuedequeue get a call and its context from a
queue
8LESS modifiers
- location to which a request to be directed
- lookup lookup locations from a source
- remove-location remove locations from location
set - Mediamedia provide media attributes
9Timer triggered outgoing call
- lt?xml version"1.0" encoding"UTF-8"?gt
- ltless xmlns"urnietfparamsxmlnsless
- xmlnsIM"urnietfparamsxmlnslessim
- xmlnsxsi" xsischemaLocation"gt
- lttimer dtstart"20050307T110000Z"gt
- ltstatus-switch uri"sipbob_at_example.com"
- status-name"presenc
e"gt - ltstatus is"open"gt
- ltlocation url"sipbob_at_example.com"gt
- ltcallgt
- ltbusygt
- ltlocation url"sipbob_at_example.com"gt
- ltIMsendmsggt
- Hi, please call me back. I am in
office - lt/IMsendmsggt
- lt/locationgt
- .
10Automatic Call Back (ACB)
- ltless xmlns"urnietfparamsxmlnsless
- xmlnsEvent"urnietfparamsxmlnslessevent
- xmlnsQueue"urnietfparamsxmlnslessqueue
- xmlnsxsi.
- xsischemaLocation"gt
- ltincominggt
- ltstatus-switch
- status-nameactivitygt
- ltstatus ison-the-phone"gt
- ltreject reasonbusygt
- ltnextgt
- ltQueueenqueue
- queue"callback"/gt
- lt/nextgt
- lt/rejectgt
- lt/statusgt
- lt/status-switchgt
- lt/incominggt
Use Event and Queue extension
In ITU Q.1211 This feature allows the called
party to automatically call back the calling
party of the last call directed to the called
party.
Check my activity for an incoming call
If I am on-the-phone Reject and enqueue
11Automatic Call Back (ACB) (cont.)
A event notification for myself
ltEventnotificationgt ltaddress-switch
field"origin"gt ltaddress uri"agent.uri"gt
ltEventevent-switchgt
ltEventevent packagepresence"
nameactivity" isnormal"gt
ltQueuedequeue
queue"callback"gt ltQueuesuccessgt
ltcall/gt
lt/Queuesuccessgt lt/Queuedequeuegt
lt/Eventeventgt lt/Eventevent-switchgt
lt/addressgt lt/address-switchgt
lt/Eventnotificationgt lt/lessgt
I am available
Dequeue and make a call
12Feature Interaction handling
- Syntax correct, semantic warnings
- e.g., parent switch and child switch mutually
exclusive - By-product of modularity
- Focusing on current needs when creating services
- FI handling between multiple CPL/LESS scripts
- Action conflict tables
- Tree merging algorithm
- Multi-component feature interactions
- e.g., parallel forking with all end systems
automatically accept an incoming call need to
check presence - Translate to formal languages (e.g., LOTOS) to
check FI with other complex services
13Open issues
- Can we use LESS for B2BUA?
- lookup from database
- coordinate multiple sessions
- multi-user feature interaction handling
- No loop and no user-defined variables is
sufficient for commonly used services? - Based on our exercises, yes
- But, what about unknown new services?
- Whats the impact on feature interaction handling
14Some links
- Spec http//www.ietf.org/internet-drafts/draft-wu
-iptel-less-00.txt - Service examples http//www.cs.columbia.edu/libr
ary/TR-repository/reports/reports-2004/cucs-048-04
.pdf - Feature interaction handling
- http//www.cs.columbia.edu/xiaotaow/rer/Research/
Paper/fiw.pdf - Computer Networks (Elsevier), Volume 45, Issue 5
15Service partition
Available anytime, anywhere More bandwidth More
computation power If possible, put services
in the network
BUT
16Service creation
17Help users to find out services
- Service learning
- Users do not know what they can do
- Users not aware of available services
- Help users, not bypass users
- CPL/LESS tree-like structure
- Decision tree learning
- Incremental Tree Induction (ITI) algorithm
- Service risk management (beyond LESS)
- connection, privacy, money, attention
- possibility and impact
- risk avoidance, transfer, reduction, and
contingency plan