Ubiquitous Programmable Internet Telephony End System Services
description
Transcript of Ubiquitous Programmable Internet Telephony End System Services
![Page 1: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/1.jpg)
Ubiquitous Programmable Ubiquitous Programmable Internet Telephony End System Internet Telephony End System
ServicesServices
Xiaotao WuInternet Real Time Laboratory
Thesis defense02/06/2007
![Page 2: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/2.jpg)
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
![Page 3: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/3.jpg)
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
![Page 4: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/4.jpg)
4
Where to run services?Where to run services?
Internet
![Page 5: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/5.jpg)
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
![Page 6: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/6.jpg)
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
![Page 7: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/7.jpg)
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…
![Page 8: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/8.jpg)
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
![Page 9: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/9.jpg)
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
![Page 10: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/10.jpg)
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
= ≠
= ≠ ≠
![Page 11: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/11.jpg)
11
CUTE (Columbia University CUTE (Columbia University Telecommunication service Telecommunication service Editor)Editor)
![Page 12: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/12.jpg)
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
![Page 13: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/13.jpg)
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
![Page 14: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/14.jpg)
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.
![Page 15: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/15.jpg)
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
![Page 16: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/16.jpg)
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.
![Page 17: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/17.jpg)
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
![Page 18: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/18.jpg)
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
![Page 19: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/19.jpg)
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
![Page 20: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/20.jpg)
20
Resolving interactionsResolving interactionscondition
decision
options withlower risks
![Page 21: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/21.jpg)
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
![Page 22: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/22.jpg)
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
![Page 23: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/23.jpg)
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
![Page 24: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/24.jpg)
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
![Page 25: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/25.jpg)
25
Simulation
40 servicesEach for 300 calls80% match10% different way10% mismatch
![Page 26: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/26.jpg)
26
PerformancePerformance
Fast vs. incremental (20 samples) training
IBM ThinkPad, Linux 1GHz PIII Mobile256MB memory
![Page 27: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/27.jpg)
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
![Page 28: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/28.jpg)
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
![Page 29: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/29.jpg)
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
![Page 30: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/30.jpg)
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
![Page 31: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/31.jpg)
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
![Page 32: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/32.jpg)
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
![Page 33: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/33.jpg)
33
Where to put services End system services
Programmable Analyzable Intelligent Ubiquitous
Implementations SIPc – multi-function integration (MMNS’04)
Other work
![Page 34: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/34.jpg)
34
ImplementationsImplementations
![Page 35: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/35.jpg)
35
![Page 36: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/36.jpg)
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
![Page 37: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/37.jpg)
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
![Page 38: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/38.jpg)
38
SDP
SAP
RTP
RTP
RTP
RTSP
SIP
SIP
SIP
location
SLP3pccSIP DO
SLPSIP
NOTIFY
MESSAGE
DO
SIP
location
location
Function interactionFunction interaction
![Page 39: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/39.jpg)
39
Where to put services End system services
Programmable Analyzable Intelligent Ubiquitous
Implementations Other work
![Page 40: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/40.jpg)
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)
![Page 41: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/41.jpg)
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.
![Page 42: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/42.jpg)
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
![Page 43: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/43.jpg)
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
![Page 44: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/44.jpg)
44
![Page 45: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/45.jpg)
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
![Page 46: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/46.jpg)
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>…………….
![Page 47: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/47.jpg)
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
![Page 48: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/48.jpg)
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
![Page 49: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/49.jpg)
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
![Page 50: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/50.jpg)
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
![Page 51: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/51.jpg)
51
![Page 52: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/52.jpg)
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
![Page 53: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/53.jpg)
53
LESS elementsLESS elements
![Page 54: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/54.jpg)
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
![Page 55: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/55.jpg)
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.)
![Page 56: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/56.jpg)
56
![Page 57: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/57.jpg)
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>
![Page 58: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/58.jpg)
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
![Page 59: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/59.jpg)
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
![Page 60: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/60.jpg)
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
![Page 61: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/61.jpg)
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
![Page 62: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/62.jpg)
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
![Page 63: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/63.jpg)
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
![Page 64: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/64.jpg)
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
![Page 65: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/65.jpg)
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
![Page 66: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/66.jpg)
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>
![Page 67: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/67.jpg)
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
![Page 68: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/68.jpg)
68
PerformancePerformance
20 vs. 250 incremental samples
IBM ThinkPad, Linux 1GHz PIII Mobile256MB memory
![Page 69: Ubiquitous Programmable Internet Telephony End System Services](https://reader033.fdocuments.us/reader033/viewer/2022051517/56814a8e550346895db79db5/html5/thumbnails/69.jpg)
69
IntegrationIntegration Gather information
SIP transaction history Calendar Location sensing Idle time User activities Timestamp
Alert users Service risk management