ubiquitous programmable internet telephony end system services xiaotao wu internet real time...
TRANSCRIPT
Ubiquitous Programmable Ubiquitous Programmable Internet Telephony End System Internet Telephony End System
ServicesServices
Xiaotao WuInternet Real Time Laboratory
Thesis defense02/06/2007
2
OverviewOverview Communication services and where
to run the services End system services
Programmable – Service creation Analyzable – Feature interaction handling Intelligent – Feature learning Ubiquitous – Context-based services
Implementations Other work
3
Services and where to run services I analyzed the difference between end system
services and services in the network (IPTS’00)
End system services Programmable Analyzable Intelligent Ubiquitous
Implementations Other work
4
Where to run services?Where to run services?
Internet
5
Run services on end Run services on end systemssystems
End devices
End servers
Net UAs Proxy Back-to-back user agent
Number of users
Single Single/trusted users
Multiple Multiple Multiple
Call states Yes Yes Yes No Yes
Media Yes Yes/no Yes No Yes/no
Number of devices
Single Multiple Single Multiple Multiple
User interaction
Direct Indirect* Indirect Indirect Indirect
Managing End user End user Admin. Admin. Admin.
IPTS ‘00
6
Services and where to run services End system services
Programmable I defined a language for end system service creation.
(ICC’03, RFC3880) Analyzable Intelligent Ubiquitous
Implementations Other work
7
End system service End system service programmingprogramming
What do we need? A language and a tool
End system service creation language Easy to understand Automatic service creation Portable
Create once, run on different devices Easy to manage
Facilitate feature interaction handling CPL, CCXML, APPEL, SPL…
8
How to represent services?How to represent services?
ECA (event – condition – action)Natural thinking of a decision making – a policy/rule set
When I am in a conference, I will vibrate my device for my boss’s calls and reject all the other calls.
Using decision trees to represent policy/rule sets(O(logN) execution time)
For an incoming call
If I am in a conference
Vibratemy device
Rejectthe call
YES
YES
NO
If the call is from my boss
9
Use LESS effort to create more Use LESS effort to create more servicesservices
LESS: Language for End System Services CPL: Call Processing Language (Jonathan, Henning, and
myself) Simplicity
Four kinds of elements: trigger, switch, action, modifier Tree-like structure, easy for feature interaction analysis
Safety 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 Extensibility
not just new elements, but can apply existing algorithmsIEEE ICC’03RFC3880
10
LESS elementsLESS elementstrigger an incoming call
switch
check the caller
switchcheck time
switch
check priority
action
redirect
action
accept
action
reject
modifier
to Bob
= ≠
= ≠ ≠
11
CUTE (Columbia University CUTE (Columbia University Telecommunication service Telecommunication service Editor)Editor)
12
Use CUTE to create services
0%
20%
40%
60%
80%
100%
Overall Group 1 Group 2 Group 3
Group
Perc
enta
ge o
fpa
rtic
ipan
ts
Other
Don't know how
Some difficulties
Easily
Very comfortable
Survey on end user service Survey on end user service creationcreation
Group1: IRT members, Group2: CS undergraduates, Group3: Other people85% would like to create their own services,
90% like to use CUTE to create services90% can correctly create service-1, 65% srv-2, 80% srv-3, 65% easy to understand LESS code
13
Services and where to run services End system services
Programmable Analyzable
I defined an algorithm handling feature interactions (FI) for LESS. ICFI’05, JCN)
Intelligent Ubiquitous
Implementations Other work
14
ring
ring
What is FI and how to handle What is FI and how to handle it?it?
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.
15
FI handling for LESSFI handling for LESS
Action conflict tables Services conflict only if their actions
conflict Tree merging algorithm
Detect and help to resolve Resolve conflicts
ICFI’05 (FIW)JCN
16
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.
17
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,E: enabling, R: resource competition
18
Tree merging (overall)Tree merging (overall)
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
conflicting-free rule set
19
Tree merging (merging)Tree merging (merging)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}
Ahmed Layouni from Univ. of Ottwa verified my work by using a model-checking tool
20
Resolving interactionsResolving interactionscondition
decision
options withlower risks
21
Services and where to run services End system services
Programmable Analyzable Intelligent
I proposed a method for automatic service creation.(ICC’05)
Ubiquitous Implementations Other work
22
No idea about services?No idea about services? Learning burden caused by new
services What and how Help, not bypass
Causal relationship between call information and call decisions SIP headers Different information sources Examples
Spam filtering, calendar-based services
23
What What (learn from)(learn from), what, what (generate) (generate), how, how Users’ communication history –
LESS decision trees – decision tree induction
find switches that can best partition actions
Algorithm Incremental Prune Quality measurement
30*3+10*2+7=117 30*2+3*2+10*3+4*3=108
24
Incremental Tree InductionIncremental Tree Induction Incremental
Incorporating Transposition
Virtual prune Direct metrics
Expected number of tests Leaf counts Minimum description length Expected misclassication cost
address=a1
time=t1 time=t1
B DCA
Y N
Y N Y N
time=t1
address=a1 address=a1
A DCB
Y N
Y N Y N
25
Simulation
40 servicesEach for 300 calls80% match10% different way10% mismatch
26
PerformancePerformance
Fast vs. incremental (20 samples) training
IBM ThinkPad, Linux 1GHz PIII Mobile256MB memory
27
How to handle service risks?How to handle service risks? Identify
Lose connection: reject, redirect, transfer, accept on wrong branch Lose privacy: accept, call, notify Lose money: accept, transfer to higher rate endpoint Lose attention: alert, accept, appliance control
Analyze Possibility: number of occurrence in the decision tree Impact: (connection, privacy) > money > attention, customizable
Resolve Change communication methods Change communication targets Reduce overall risk: avoiding high impact risks, though may cause
low impact risks Contingency plan
Backup
28
Services and where to run services End system services
Programmable Analyzable Intelligent Ubiquitous
Joint work on several related projects – a ubiquitous computing architecture, location-based services, SIP 911(Nossdav’03, IEEE Communications, CCNC’05, ICCCN’05)
Implementations Other work
29
-- Mark Weiser
Ubiquitous computing using Ubiquitous computing using SIPSIP
What is ubiquitous computing Enhance computer use by making many computers
available throughout the physical environment, but making them effectively invisible to the user.
where are we
what’s available
how to controlautomate the control
Front deskService location server
room 123
what’s availablein room 123?
video displaymicrophonevideo camera
Bob I am in room 123
Bob can usedevices in 123
use the devicesin room 123 totalk to Tom
Tom
send mediato Tom
30
System ArchitectureSystem Architecture
LocationSensing
ResourceDiscovery
ResourceControl
CallControl
GPS
BlueTooth
DHCP
Wireless triangulation
NOTIFY
PUBLISH
REGISTER
REGISTER
SIP Home domainRegistrar and AAA serverLocation
Server
Local domainSIP server
SLP DA
INVITE
SLP SA
SLP query
result
NOSSDAV03IEEE Communications
Stylianos, Stefan, Henning, myself
31
Room confLocation agent
Bob
RFID readeriButtonreader
ProxyLS
Bob is in conf
NOTIFYLocation
You areIn conf
SLP DA
SLP SA
Device GWSLinke
X10
Turn onconf’s light
Turn on light
What’savailable
sip:conf_pingtelfor audio
sip:conf
Tracking
Triggeran action
Resourcediscovery
IEEE CCNC’05
Location-basedLocation-basedServices in our Services in our lablab
Ron ,Matthew,Kundan, and myself
32
Location-basedLocation-basedServices in our Services in our lablab
Location agent
Bob
RFID readeriButtonreader
ProxyLS
Bob is in conf
NOTIFYLocation
You areIn conf
SLP DA
SLP SA
Device GWSLinke
X10
Turn onconf’s light
Turn on light
What’savailable
sip:conf_pingtelfor audio
sip:conf
INVITE sip:anyone_roomconf
Guard communicatio
n behavior
‘Talk’ to alocation
Room conf
IEEE CCNC’05
33
Where to put services End system services
Programmable Analyzable Intelligent Ubiquitous
Implementations SIPc – multi-function integration (MMNS’04)
Other work
34
ImplementationsImplementations
35
36
Function overviewFunction overview
SIPMultimediacall control
Real time streaming
Location sensing
Network appliance control
Floorcontrol
SIP for presence
SAPInstantmessage
SIP CGI engine
LESS/CPLengine
Third party call control
Emergency handling
Service LocationDetection (SLP)
audio
video
whiteboard
desktopsharing
locationsensors
Email clients
RTP: RFC 1889SDP: RFC 2327RTSP: RFC 2326
SIP Event Arch.: RFC 3265 RFC3903
SAP: RFC 2974SIP: RFC 3261
SLP: RFC 2608
CPL, SIP 3PCC,SIP Device ControlGEOPRIV location format, SIP for IM
Web browsers
MMNS’04
37
Call
SIP
SDPRTP
Session broadcasting SAP
RTSP
SIP eventnotification
Locationsensing
Emergency handling
Location tracking
Device controlir/x10
MapLynx
Messagewaitingindication
Voicemailhandling
Presencenotification
Conferencingfloor control
Servicedetection
SLP
Instantmessaging
xcon
Function sharingFunction sharing
38
SDP
SAP
RTP
RTP
RTP
RTSP
SIP
SIP
SIP
location
SLP3pccSIP DO
SLPSIP
NOTIFY
MESSAGE
DO
SIP
location
location
Function interactionFunction interaction
39
Where to put services End system services
Programmable Analyzable Intelligent Ubiquitous
Implementations Other work
40
Other workOther work
Building Box project (AT&T Labs Research) Conferencing floor control (RFC4376) Networked appliance control Shared web browsing Distributed conferencing and MOC
integration (Avaya Labs Research) Joined several other projects (CINEMA, SIP
911, session mobility, FAA pilot training)
41
SummarySummary I defined LESS and built CUTE. I also conducted a survey on
end system service creation. The survey shows LESS and CUTE are good for end system service creation.
I developed an algorithm to handle feature interactions in LESS. The algorithm is easy to implement and can detect and help to resolve feature interactions in LESS.
I proposed to use decision tree induction to automatically create services for end users and defined ways to handle service risks. Automatic service creation can help users to create their desired services.
I investigated how to perform ubiquitous communication and location-based services in end systems. The ubiquitous communication architecture we proposed is scalable and can use off-the-shelf hardware and software for communication.
I implemented a SIP user agent, SIPc, and integrated my research result into SIPc. Multi-function integration in SIPc shows that convergence and multi-function interaction can bring new communication services.
42
Some linksSome links SIPc: http://www.cs.columbia.edu/IRT/sipc CINEMA: http://www.cs.columbia.edu/IRT/cinema LESS: http://www.ietf.org/internet-drafts/draft-wu-iptel-less-00.txt CUTE: http://www.cs.columbia.edu/~xiaotaow/cute Ubiquitous Computing: http://www1.cs.columbia.edu/~xiaotaow/
rer/Research/Paper/ieeecomm_inhome.pdf 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 Service learning: http://www.cs.columbia.edu/~xiaotaow/rer
/Research/Paper/icc2005.pdf
43
AcknowledgementsAcknowledgements
Mentor: Dr. Henning Schulzrinne All the thesis committee members People in IRT and the CS Department Colleagues in AT&T Labs Research
and Avaya Labs Research SIPQuest
44
45
End-to-end v.s. master/slaveEnd-to-end v.s. master/slave Pickup call
D1 D2
D3
C
D1 D2
D3
C
notificationtriggeredINVITE
MGC
MGCPMegaco
46
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>…………….
47
LESS elements (triggers)LESS elements (triggers)
Triggers incoming: incoming call handling outgoing: user invoked outgoing call timer: timer triggered actions UI:command: user interaction commands IM:message: incoming instant messaging Event:subscription: incoming subscription Event:notification: incoming notification
48
LESS elements (switches)LESS elements (switches) 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
49
LESS elements (actions)LESS elements (actions) 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
50
LESS elements (modifiers)LESS elements (modifiers) 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
51
52
LESS script customizationLESS script customization
xsl:if
LESS editor
service.less(template)
XSLT
less.xsl
configurationeditor
service.html
translate.cgi
service_foo.less
address is=$var
53
LESS elementsLESS elements
54
Example: Automatic Call Back Example: Automatic Call Back (ACB)(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
55
<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) Automatic Call Back (ACB) (cont.)(cont.)
56
57
<?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>
58
Rich signaling informationRich signaling information
Rich signaling information SIP headers Caller preference and callee capabilities MIME contents Event notification Other means
Web calendar, Directory services
59
Rich servicesRich services Be able to handle services in PSTN networks
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
Emergency provide location information
New 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
60
DefinitionDefinition
What is service learning Automatically generate user desired
services Help users, not bypass users Services on both proxy servers and end
systems What is service risk management
Risk caused by automation How to reduce the overall risks
IEEE ICC’05
61
Decision tree inductionDecision tree induction Entropy: -Σ P log2P
30 rejects, 17 accepts-30/47*log2(30/47)-17/47*log2(17/47) = 0.944087
Split on caller=Bob-30/33*log2(30/33)-3/33*log2(3/33)-14/14*log2(14/14) = 0.439497
Information gain: entropy change after splitting Information gain on the splitting is 0.50459
62
Decision tree inductionDecision tree induction
Find the splitting that can get the largest information gain
Repeat for all sub-trees until no more information gain
Noisy data and prune Splitting causes higher error
63
Why not just a service creation Why not just a service creation tooltool
Portability Java and scripting languages are also “portable”
“I am happy to see a piece of technology that works so well that I’m free to ignore its inner details.” Maybe not some complicated work
”I also want to have the low-level innards visible, controllable when possible, and modifiable by anyone who’s willing and able to do that work.” Lower the bar for understanding the low-level
innards
64
Open issuesOpen issues
Can we use LESS for B2BUA? coordinate multiple sessions multi-user feature interaction handling
Loop and user-defined variables needed? Based on my exercises, no But, what about unknown new services? Convert loop to a high-level abstraction? What’s the impact on feature interaction
handling
65
Location in Emergency Services
Emergency Call Center
Call Flow Prototype Architecture
SIP Proxy
SIP Proxy
Internet
ALI ServerDHCP Server
DNS Server
911112
sip:sos@domainw/location or w/out location
geo location
POTS/Wireless Network
IP Network
911
IP Gateway
sip:sos@domainwithout location
Envinsa Server
sip:psap@domainwith location
location
GeoLynx Display
DHCP InformMAC Address
Location Info
TCP Socket Telephone Number
PSAP Info
HTTP SOAPgeo location
verifiedcivil
location
civil location**
PSAP Info
DNS Querycivil location
IEEE ICCCN’05
Henning,Anshuman,Matthew,Amrita,Jong Yul,Wonsang,and myself
66
Program location-based Program location-based servicesservices<incoming> <LOC:where-switch type="civil"> <LOC:where country="USA" A1="New York" A3="New York" A6="West 120th" HNO="450" LOC="Room 563"> <location url="sip:[email protected]"> <redirect/> </location> </LOC:where> <otherwise> <location url="sip:[email protected]"> <redirect/> </location> </otherwise> </LOC:where-switch></incoming>
67
Related work on CPL FI Related work on 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
68
PerformancePerformance
20 vs. 250 incremental samples
IBM ThinkPad, Linux 1GHz PIII Mobile256MB memory
69
IntegrationIntegration Gather information
SIP transaction history Calendar Location sensing Idle time User activities Timestamp
Alert users Service risk management