Title: Ubiquitous Programmable Internet Telephony Services
1Ubiquitous Programmable Internet Telephony
Services
Thesis defense
- Xiaotao Wu
- Internet Real Time Laboratory
2Overview
- Where to put services
- Services
- Ubiquitous SIP-based ubiquitous computing
- Programmable CPL, LESS and FI handling
- Rich existing services and new services
- Smart Feature learning
- Implementations
- Other works
3- Where to put services
- Services
- Ubiquitous
- Programmable
- Rich
- Smart
- Implementations
- Other works
4Services can be everywhere
End users server
End devices
Proxy server
B2BUA
User agents in the network
5Where to put services
6Peer-to-peer v.s. master/slave
MGCP Megaco
notification triggered INVITE
MGC
7- Where to put services
- Services
- Ubiquitous
- Programmable
- Rich
- Smart
- Implementations
- Other works
8Ubiquitous computing using SIP
- What is ubiquitous computing
- Enhance computer use by making many computers
available throughout the physical environment,
but making them effectively invisible to the
user.
-- Mark Weiser
whats available
where are we
how to control
automate the control
send media to Tom
use the devices in room 123 to talk to Tom
Tom
Bob can use devices in 123
room 123
Bob
I am in room 123
video display microphone video camera
whats available in room 123?
NOSSDAV03 IEEE Communications
Service location server
9System Architecture
SIP Home domain Registrar and AAA server
Location Server
Wireless triangulation
Local domain SIP server
NOTIFY
SLP DA
GPS
Location Sensing
Resource Discovery
BlueTooth
Resource Control
Call Control
DHCP
SLP SA
INVITE
10Room conf
Location agent
Device GW
SLinke
Proxy LS
Bob
Trigger an action
X10
sipconf_pingtel for audio
iButton reader
SLP DA
RFID reader
SLP SA
Resource discovery
Tracking
Location-basedServices in our lab
IEEE CCNC05
11Location-basedServices in our lab
Room conf
Location agent
Device GW
SLinke
Bob is in conf
Turn on light
Proxy LS
Bob
X10
You are In conf
sipconf_pingtel for audio
Whatsavailable
Turn on confs light
iButton reader
SLP DA
RFID reader
sipconf
SLP SA
Guard communication behavior
Talk to alocation
Location
NOTIFY
IEEE CCNC05
12Location in Emergency Services
ALI Server
DHCP Server
verified
TCP Socket
civil
DHCP Inform
Telephone
location
MAC Address
DNS Server
Number
Location
HTTP SOAP
DNS Query
SIP Proxy
Info
geo location
civil location
PSAP
PSAP
Info
Info
civil location
geo location
sip
sos
_at_
domain
911
w
/
location or
112
w
/
out location
IP Network
Internet
SIP Proxy
POTS
/
Wireless
Network
Emergency Call Center
Prototype Architecture
Call Flow
IEEE ICCCN05
13Program location-based services
ltincominggt ltLOCwhere-switch type"civil"gt
ltLOCwhere country"USA" A1"New York"
A3"New York" A6"West 120th" HNO"450"
LOC"Room 563"gt ltlocation
url"sipbob-office_at_example.com"gt
ltredirect/gt lt/locationgt lt/LOCwheregt
ltotherwisegt ltlocation url"sipbob-mobile_at_e
xample.com"gt ltredirect/gt
lt/locationgt lt/otherwisegt lt/LOCwhere-switchgt
lt/incominggt
14- Where to put services
- Services
- Ubiquitous
- Programmable
- Rich
- Smart
- Implementations
- Other works
15Easy service creation
- 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.
Vibrate my device
A decision tree to represent a rule set
If the call is from my boss
YES
YES
If I am in a conference
For an incoming call
NO
Reject the call
CPL and LESS
16Timer triggered outgoing call
- lt?xml version"1.0" encoding"UTF-8"?gt
- ltless xmlns"urnietfparamsxmlnsless
- xmlnsIM"urnietfparamsxmlnslessim
- xmlnsxsi" xsischemaLocation"gt
- lttimer dtstart"20050307T110000Z"gt
- ltstatus-switch uri"sipbob_at_example.com"
- status-name"presenc
e"gt - ltstatus is"open"gt
- ltlocation url"sipbob_at_example.com"gt
- ltcallgt
- ltbusygt
- ltlocation url"sipbob_at_example.com"gt
- ltIMsendmsggt
- Hi, please call me back. I am in
office - lt/IMsendmsggt
- lt/locationgt
- .
17CPL 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 ICC03 RFC3880
18LESS elements
trigger
an incoming call
19LESS elements
20LESS elements
- Triggers
- incoming incoming call handling
- outgoing user invoked outgoing call
- timer timer triggered actions
- UIcommand user interaction commands
- IMmessage incoming instant messaging
- Eventsubscription incoming subscription
- Eventnotification incoming notification
21LESS 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) - Eventevent-switch check values in event
notifications - LOCwhere-switch check users physical location
information (remote or local user) - LOCwhere-relation-switch check relative
physical locations between two people
22LESS 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
- Mediamediaupdate update media attributes
- Midcalltransfer transfer a call
- Midcallmerge merge multiple calls
- UIalert alert user
- UIgetinput get user input
- IMsendmsg send an instant message
- Eventapprove approve subscription
- Eventdeny deny event subscription
- Eventdefer defer the decision on event
subscription - Eventsubscribe send subscription out
- Eventnotify send notification out
- Queueenqueue put a call and its context into a
queue - Queuedequeue get a call and its context from a
queue
23LESS 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 - Mediamedia provide media attributes
24Automatic Call Back (ACB)
- ltless xmlns"urnietfparamsxmlnsless
- xmlnsEvent"urnietfparamsxmlnslessevent
- xmlnsQueue"urnietfparamsxmlnslessqueue
- xmlnsxsi.
- xsischemaLocation"gt
- ltincominggt
- ltstatus-switch
- status-nameactivitygt
- ltstatus ison-the-phone"gt
- ltreject reasonbusygt
- ltnextgt
- ltQueueenqueue
- queue"callback"/gt
- lt/nextgt
- lt/rejectgt
- lt/statusgt
- lt/status-switchgt
- lt/incominggt
Use Event and Queue extension
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
If I am on-the-phone Reject and enqueue
25Automatic Call Back (ACB) (cont.)
A event notification for myself
ltEventnotificationgt ltaddress-switch
field"origin"gt ltaddress uri"agent.uri"gt
ltEventevent-switchgt
ltEventevent packagepresence"
nameactivity" isnormal"gt
ltQueuedequeue
queue"callback"gt ltQueuesuccessgt
ltcall/gt
lt/Queuesuccessgt lt/Queuedequeuegt
lt/Eventeventgt lt/Eventevent-switchgt
lt/addressgt lt/address-switchgt
lt/Eventnotificationgt lt/lessgt
I am available
Dequeue and make a call
26(No Transcript)
27lt?xml version"1.0"?gt ltlessgt ltincominggt
ltaddress-switch field"origin"gt ltaddress
is"siphgs_at_cs.columbia.edu"gt ltaccept/gt
lt/addressgt ltotherwisegt
ltlocation url"sipfoo_at_example.com"gt
ltredirect/gt lt/locationgt
lt/otherwisegt lt/address-switchgt
lt/incominggt lt/lessgt
28(No Transcript)
29LESS script customization
LESS editor
less.xsl
service.less (template)
xslif
address isvar
XSLT
configuration editor
service.html
translate.cgi
service_foo.less
30Open 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?
- Whats the impact on feature interaction handling
31Easy feature interaction analysis
Incoming call
Incoming call
Incoming call
If time is between 1000AM and 1100AM
If address is hgs
If address is hgs
If time is between 1000AM and 1100AM
accept
accept
accept
reject
Forward to conf
Forward to conf
reject
Take actions from both scripts. Simply setting
precedence rules cannot work.
ICFI05 (FIW)
32Easy 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
33Related 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
34Pre-condition and expected results
35Action conflict table
- no interaction, A attribute conflict, C
action conflict, E enabling, R resource
competition
36Tree 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
37Tree 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
38- Where to put services
- Services
- Ubiquitous
- Programmable
- Rich
- Smart
- Implementations
- Other works
39Rich signaling information
- Rich signaling information
- SIP headers
- Caller preference and callee capabilities
- MIME contents
- Event notification
- Other means
- Web calendar, Directory services
40Rich 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
41- Where to put services
- Services
- Ubiquitous
- Programmable
- Rich
- Smart
- Implementations
- Other works
42Definition
- 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 ICC05
43Motivation
- Causal relationship between call information and
call decisions - SIP headers
- Other Internet services
- Learning burden caused by new services
- Not named services, but programmable services
- What and how
- Examples
- Spam filtering, calendar-based services
- Service risks
- Lose connectivity, lose privacy,
44Design
- Using decision tree induction for learning
- In CPL/LESS terms find switches that can best
partition actions - What algorithm
- Incremental
- Prune
- Quality measurement
3031027117 3023210343108
45Incremental Tree Induction
- Incremental
- Incorporating
- Transposition
- Virtual prune
- Direct metrics
- Expected number of tests
- Leaf counts
- Minimum description length
- Expected misclassication cost
4640 services Each for 300 calls 80 match 10
different way 10 mismatch
Simulation
47Performance
IBM ThinkPad, Linux 1GHz PIII Mobile 256MB memory
Fast vs. incremental (20 samples) training
48Performance
IBM ThinkPad, Linux 1GHz PIII Mobile 256MB memory
20 vs. 250 incremental samples
49Integration
- Gather information
- Transaction history
- Calendar
- Location sensing
- Idle time
- Communication activities
- Timestamp
- Alert users
- Service risk management
50Service risk management
- 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, switch attributes - Impact (connection, privacy) gt money gt
attention, customizable - Overall risk avoiding high impact risks, though
may cause low impact risks - Resolve
- Change communication methods
- Transfer
- Reduce overall risk
- Contingency plan
- Backup
51- Where to put services
- Services
- Ubiquitous
- Programmable
- Rich
- Smart
- Implementations
- Other works
52Implementations
53(No Transcript)
54Function overview
Email clients
Real time streaming
Network appliance control
Third party call control
Web browsers
Emergency handling
audio
SIP CGI engine
SIP Multimedia call control
video
Instant message
SAP
location sensors
Location sensing
white board
Floor control
SIP for presence
LESS/CPL engine
Service Location Detection (SLP)
desktop sharing
SAP RFC 2974
SIP RFC 3261
CPL, SIP 3PCC, SIP Device Control GEOPRIV
location format, SIP for IM
SDP RFC 2327
RTSP RFC 2326
RTP RFC 1889
SLP RFC 2608
SIP Event Arch. RFC 3265 RFC3903
MMNS04
55Function reuse
Conferencing floor control
Device control
Presence notification
ir/x10
xcon
Location tracking
SIP event notification
Service detection
Message waiting indication
Location sensing
SIP
SLP
Voicemail handling
Call
Emergency handling
SDP
RTP
MapLynx
RTSP
Instant messaging
Session broadcasting
SAP
56Function interaction
SIP
SLP
DO
SLP
SAP
3pcc SIP DO
SIP
location
SDP
location
RTP
RTP
SIP
SIP
SIP
NOTIFY
location
MESSAGE
RTP
RTSP
57Other work
- Building Box project (ATT Labs Research)
- Conferencing floor control
- Networked appliance control
- Shared web browsing
- Joined some other projects (CINEMA, SIP 911,
session mobility, project for FAA, )
58Conclusion
- Services are more distributed in Internet
telephony. We need techniques specifically for
end system service creation - LESS is designed for end system services
- Easy to build SCE
- Easy to analyze
- Enable feature learning
- Different information and different functions
converged at end systems and will introduce many
new services, e.g., location-based services.
59Some 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 - Ubiquitous Computing http//www1.cs.columbia.edu/
xiaotaow/ rer/Research/Paper/ieeecomm_inhome.pdf - Service examples http//www.cs.columbia.edu/libr
ary/TR-repository/reports/reports-2004/cucs-048-04
.pdf - Feature interaction handling http//www.cs.columb
ia.edu/ xiaotaow/rer/Research/Paper/fiw.pdf - Service learning http//www.cs.columbia.edu/xiao
taow/rer /Research/Paper/icc2005.pdf
60Acknowledgements
- Dr. Henning Schulzrinne
- SIPQuest
- Colleagues in IRT lab
- Colleagues in ATT Labs Research
Thank you!
61Decision tree induction
- Entropy -S P log2P
- 30 rejects, 17 accepts-30/47log2(30/47)-17/47l
og2(17/47) 0.944087 - Split on callerBob-30/33log2(30/33)-3/33log2(
3/33)-14/14log2(14/14) 0.439497 - Information gain entropy change after splitting
- Information gain on the splitting is 0.50459
62Decision 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