Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time...

24
Feature Interaction Feature Interaction Handling in LESS Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory

Transcript of Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time...

Page 1: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

Feature Interaction Feature Interaction Handling in LESSHandling in LESS

Xiaotao Wu and Henning Schulzrinne

Internet Real Time Laboratory

Page 2: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

2

OverviewOverview

End system services CPL and LESS Feature interaction handling in

CPL/LESS Action conflict table Tree merging

More than call control services Open issues

Page 3: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

3

Where to put servicesWhere to put servicesEnd devices

End servers

Net UAs Proxy B2BUA

Number of users

Single Single/trusted users

Multiple Multiple Multiple

Call/dialog states

Yes Yes Yes No Yes

Media Yes Yes/no Yes No Yes/no

Number of entities

Single Multiple Single Multiple Multiple

Direct interaction

Yes No/yes No No No

Admin. End user End user Admin. Admin. Admin.

Store services in the network, though they may get executed in end systemsKeep the peer-to-peer architecture, avoid the master/slave architecture

Page 4: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

4

CPL and LESSCPL and LESS CPL: Call Processing Language LESS: Language for End System Services Simple

Four kinds of elements: trigger, switch, action, modifier Tree-like structure, easy for 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

Portability Handle user interactions and media operations Beyond call control

presence, IM, Web, location

IEEE ICC’03RFC3880

Page 5: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

5

Tree-like structureTree-like structure

Using a tree-like structure to represent communication services

Natural thinking of call decision making – a rule set

For an incoming call, if I am in a conference, I will reject all the calls that are not from my boss.

A decision tree to represent a rule set

For an incoming call

If I am in a conference

If the call is from my boss

Vibratemy device

Rejectthe call

YES

YES

NO

CPL and LESS

Page 6: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

6

Timer Timer triggered triggered outgoing calloutgoing 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 7: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

7

LESS elementsLESS elements

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 8: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

8

LESS elements (cont.)LESS elements (cont.) 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 9: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

9

LESS elements (Cont.)LESS elements (Cont.) 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

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 10: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

10

LESS elements (Cont.)LESS elements (Cont.) Two smaller concepts might be simpler

and more flexible than one more powerful but complicated concept

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 11: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

13

Page 12: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

14

<?xml version="1.0"?><less> <incoming> <address-switch field="origin"> <address is="sip:[email protected]"> <accept/> </address> <otherwise> <location url="sip:[email protected]"> <redirect/> </location> </otherwise> </address-switch> </incoming></less>

Page 13: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

17

accept

accept

Feature interaction analysisFeature interaction analysis

Tree merging

+ =If time is between

10:00AM and 11:00AMIf address is hgs

Forward to conf

Incoming call Incoming call

Incoming call

If time is between 10:00AM and 11:00AM

If address is hgs

rejectForward to conf

rejectaccept

Take actions from both scripts. Simply setting precedence rules cannot work.

Page 14: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

18

Feature interaction analysisFeature interaction analysis

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

Page 15: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

19

Related work of CPL FI Related work of CPL FI handlinghandling

Related work Syntax correct, semantic warnings

e.g., parent switch and child switch mutually exclusive

Translate to formal languages to check FI with other complex services

Page 16: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

20

Pre-condition and expected Pre-condition and expected resultsresults

pre-condition expected results

accept The call setup is pending. The audio device is available.

The call setup is finalize. The communication session is setup. The audio device is occupied.

reject The call setup is pending. The call setup is finalized.

redirect

The call setup is pending. The call setup is finalized on the current end system.

call The audio device is available. If the callee side accepts the call, a communication session is setup and audio device is occupied.

Page 17: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

21

Action conflict tableAction conflict tableaccept reject redirec

tcall

accept A(media) C C R

reject C A(reason) C -

redirect

C C A(target) -

call R - - A(target)

-: no interaction, A: attribute conflict, C: action conflict,(C): avoidable conflict, E: enabling, R: resource competition

Page 18: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

22

Tree mergingTree merging

set base-rule-set emptyforeach LESS-tree { convert the LESS-tree into a rule set foreach rule in the rule set { normalize the rule } merge the normalized rule set into base-

rule-set}convert base-rule-set into a decision tree

Page 19: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

23

Tree merging (cont.)Tree merging (cont.)if (two rules have different triggers) { no rule conflict except timer trigger} else if actions in two rules do not conflict { no rule conflict} else if no overlap between rule path in two rules { no rule conflict} else { two rules conflict with each other, return the rule path overlap and action conflict

information prompt to the script owner to judge}

Page 20: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

24

Rich signaling information canRich signaling information canhelp to solve feature help to solve feature interactionsinteractions

Rich signaling information SIP headers Caller preference and callee capabilities MIME contents Event notification Other means

Web calendar, Directory services

Page 21: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

25

More than just call control More than just call control servicesservices

Interact with existing Internet services web email SLP SAP IM presence location networked appliance control directory service calendar service conferencing

Not named services, but programmable services Programmable conferencing services

Page 22: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

26

Open issuesOpen issues Can we use LESS for B2BUA?

‘lookup’ from database coordinate multiple sessions multi-user feature interaction handling

Loop and user-defined variables needed? Based on our exercises, no But, what about unknown new services? Convert loop to a high-level abstraction? What’s the impact on feature interaction

handling

Page 23: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

27

Some linksSome links LESS:

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 SIPc: http://www.cs.columbia.edu/IRT/sipc CINEMA: http://www.cs.columbia.edu/IRT/cinema

Page 24: Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory.

28

AcknowledgementsAcknowledgements

Dr. Henning Schulzrinne This project is supported by the

funding from SIPQuest

Thank you!