The Internet Real-Time Laboratory Henning Schulzrinne April 2002 .
Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time...
-
Upload
samir-bruton -
Category
Documents
-
view
213 -
download
0
Transcript of Feature Interaction Handling in LESS Xiaotao Wu and Henning Schulzrinne Internet Real Time...
Feature Interaction Feature Interaction Handling in LESSHandling 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
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
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
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
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>…………….
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
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
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
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
13
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>
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.
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
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
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.
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
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
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}
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
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
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
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
28
AcknowledgementsAcknowledgements
Dr. Henning Schulzrinne This project is supported by the
funding from SIPQuest
Thank you!