sipping - ietf 62 - minneapolis (march 2005) less effort, more services xiaotao wu henning...
TRANSCRIPT
SIPPING - IETF 62 - Minneapolis (March 2005)
LESS effort, more services
Xiaotao WuHenning Schulzrinne
Dept. of Computer ScienceColumbia University
SIPPING - IETF 62 - Minneapolis (March 2005)
The 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
SIPPING - IETF 62 - Minneapolis (March 2005)
Supported 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
SIPPING - IETF 62 - Minneapolis (March 2005)
LESS triggers
• incoming: incoming call handling
• timer: timer triggered actions
• UI:command: user interaction commands
• IM:message: incoming instant messaging
• Event:subscription: incoming subscription
• Event:notification: incoming notification
SIPPING - IETF 62 - Minneapolis (March 2005)
LESS 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)
• Event:event-switch: check values in event notifications• LOC:where-switch: check users’ physical location
information (remote or local user)• LOC:where-relation-switch: check relative physical locations
between two people
SIPPING - IETF 62 - Minneapolis (March 2005)
LESS 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• Media:mediaupdate: update media attributes• Midcall:transfer: transfer a call
SIPPING - IETF 62 - Minneapolis (March 2005)
LESS actions
• Midcall:merge: merge multiple calls• UI:alert: alert user• UI:getinput: get user input• IM:sendmsg: send an instant message• Event:approve: approve subscription• Event:deny: deny event subscription• Event:defer: defer the decision on event subscription• Event:subscribe: send subscription out• Event:notify: send notification out• Queue:enqueue: put a call and its context into a queue• Queue:dequeue: get a call and its context from a queue
SIPPING - IETF 62 - Minneapolis (March 2005)
LESS modifiers
• location: to which a request to be directed
• lookup: lookup locations from a source
• remove-location: remove locations from location set
• Media:media: provide media attributes
SIPPING - IETF 62 - Minneapolis (March 2005)
Timer triggered outgoing call <?xml version="1.0" encoding="UTF-8"?>
<less xmlns="urn:ietf:params:xml:ns:less“
xmlns:IM="urn:ietf:params:xml:ns:less:im“
xmlns:xsi=“…" xsi:schemaLocation=“…">
<timer dtstart="20050307T110000Z">
<status-switch uri="sip:[email protected]"
status-name="presence">
<status is="open">
<location url="sip:[email protected]">
<call>
<busy>
<location url="sip:[email protected]">
<IM:sendmsg>
Hi, please call me back. I am in office
</IM:sendmsg>
</location>
…………….
SIPPING - IETF 62 - Minneapolis (March 2005)
Automatic Call Back (ACB)<less xmlns="urn:ietf:params:xml:ns:less“ xmlns:Event="urn:ietf:params:xml:ns:less:event“ xmlns:Queue="urn:ietf:params:xml:ns:less:queue“ xmlns:xsi=“….“ xsi:schemaLocation=“……"><incoming> <status-switch status-name=“activity”> <status is=“on-the-phone"> <reject reason=“busy”> <next> <Queue:enqueue queue="callback"/> </next> </reject> </status> </status-switch></incoming>
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
Use Event and Queue extension
If I am on-the-phoneReject and enqueue
SIPPING - IETF 62 - Minneapolis (March 2005)
<Event:notification> <address-switch field="origin"> <address uri="{agent.uri}"> <Event:event-switch> <Event:event package=“presence" name=“activity" is=“normal"> <Queue:dequeue queue="callback"> <Queue:success> <call/> </Queue:success> </Queue:dequeue> </Event:event> </Event:event-switch> </address> </address-switch> </Event:notification></less>
A event notification for myself
I am available
Dequeue and make a call
Automatic Call Back (ACB) (cont.)
SIPPING - IETF 62 - Minneapolis (March 2005)
Feature 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
SIPPING - IETF 62 - Minneapolis (March 2005)
Open 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?– What’s the impact on feature interaction
handling
SIPPING - IETF 62 - Minneapolis (March 2005)
Some links
• Spec: http://www.ietf.org/internet-drafts/draft-wu-iptel-less-00.txt
• Service examples: http://www.cs.columbia.edu/~library/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