1 / 24

Feature Interaction Handling in LESS

Feature Interaction Handling in LESS. Xiaotao Wu and Henning Schulzrinne Internet Real Time Laboratory. Overview. End system services CPL and LESS Feature interaction handling in CPL/LESS Action conflict table Tree merging More than call control services Open issues.

tale
Download Presentation

Feature Interaction Handling in LESS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Overview • 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 services

  4. CPL 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’03 RFC3880

  5. Vibrate my device If the call is from my boss YES YES If I am in a conference For an incoming call NO Reject the call Tree-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 CPL and LESS

  6. 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:bob@example.com" status-name="presence"> <status is="open"> <location url="sip:bob@example.com"> <call> <busy> <location url="sip:bob@example.com"> <IM:sendmsg> Hi, please call me back. I am in office </IM:sendmsg> </location> …………….

  7. LESS 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.) • 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.) • Actions • accept: accept an incoming call • reject: reject an incoming call • redirect: redirect an incoming call • authenticate: authenticate anincoming 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.) • 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

  11. <?xml version="1.0"?> <less> <incoming> <address-switch field="origin"> <address is="sip:hgs@cs.columbia.edu"> <accept/> </address> <otherwise> <location url="sip:foo@example.com"> <redirect/> </location> </otherwise> </address-switch> </incoming> </less>

  12. Feature interaction analysis • Tree merging Incoming call Incoming call Incoming call If time is between 10:00AM and 11:00AM If address is hgs If address is hgs If time is between 10:00AM and 11:00AM = + accept accept accept reject Forward to conf Forward to conf reject Take actions from both scripts. Simply setting precedence rules cannot work.

  13. Feature 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

  14. Related work of CPL FI handling • 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

  15. Pre-condition and expected results

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

  17. Tree merging set base-rule-set empty foreach 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

  18. 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 }

  19. Rich signaling information canhelp to solve feature interactions • Rich signaling information • SIP headers • Caller preference and callee capabilities • MIME contents • Event notification • Other means • Web calendar, Directory services

  20. More than just call control services • 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

  21. Open 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

  22. Some 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

  23. Acknowledgements • Dr. Henning Schulzrinne • This project is supported by the funding from SIPQuest Thank you!

More Related