sipping - ietf 62 - minneapolis (march 2005) less effort, more services xiaotao wu henning...

14
SIPPING - IETF 62 - Minne apolis (March 2005) LESS effort, more services Xiaotao Wu Henning Schulzrinne Dept. of Computer Science Columbia University

Upload: osborne-morris

Post on 03-Jan-2016

220 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: SIPPING - IETF 62 - Minneapolis (March 2005) LESS effort, more services Xiaotao Wu Henning Schulzrinne Dept. of Computer Science Columbia University

SIPPING - IETF 62 - Minneapolis (March 2005)

LESS effort, more services

Xiaotao WuHenning Schulzrinne

Dept. of Computer ScienceColumbia University

Page 2: SIPPING - IETF 62 - Minneapolis (March 2005) LESS effort, more services Xiaotao Wu Henning Schulzrinne Dept. of Computer Science Columbia 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

Page 3: SIPPING - IETF 62 - Minneapolis (March 2005) LESS effort, more services Xiaotao Wu Henning Schulzrinne Dept. of Computer Science Columbia University

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

Page 4: SIPPING - IETF 62 - Minneapolis (March 2005) LESS effort, more services Xiaotao Wu Henning Schulzrinne Dept. of Computer Science Columbia University

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

Page 5: SIPPING - IETF 62 - Minneapolis (March 2005) LESS effort, more services Xiaotao Wu Henning Schulzrinne Dept. of Computer Science Columbia University

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

Page 6: SIPPING - IETF 62 - Minneapolis (March 2005) LESS effort, more services Xiaotao Wu Henning Schulzrinne Dept. of Computer Science Columbia University

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

Page 7: SIPPING - IETF 62 - Minneapolis (March 2005) LESS effort, more services Xiaotao Wu Henning Schulzrinne Dept. of Computer Science Columbia University

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

Page 8: SIPPING - IETF 62 - Minneapolis (March 2005) LESS effort, more services Xiaotao Wu Henning Schulzrinne Dept. of Computer Science Columbia University

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

Page 9: SIPPING - IETF 62 - Minneapolis (March 2005) LESS effort, more services Xiaotao Wu Henning Schulzrinne Dept. of Computer Science Columbia University

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>

…………….

Page 10: SIPPING - IETF 62 - Minneapolis (March 2005) LESS effort, more services Xiaotao Wu Henning Schulzrinne Dept. of Computer Science Columbia University

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

Page 11: SIPPING - IETF 62 - Minneapolis (March 2005) LESS effort, more services Xiaotao Wu Henning Schulzrinne Dept. of Computer Science Columbia University

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.)

Page 12: SIPPING - IETF 62 - Minneapolis (March 2005) LESS effort, more services Xiaotao Wu Henning Schulzrinne Dept. of Computer Science Columbia University

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

Page 13: SIPPING - IETF 62 - Minneapolis (March 2005) LESS effort, more services Xiaotao Wu Henning Schulzrinne Dept. of Computer Science Columbia University

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

Page 14: SIPPING - IETF 62 - Minneapolis (March 2005) LESS effort, more services Xiaotao Wu Henning Schulzrinne Dept. of Computer Science Columbia University

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