SIP2003-ServiceMobility

Download Report

Transcript SIP2003-ServiceMobility

Service Mobility
Henning Schulzrinne
(with Stefan Berger, Jonathan Lennox, Xiaotao Wu)
Columbia University
SIP 2003 – January 2003
Paris, France
Overview


Mobility – more than cell phones
Components of service mobility



Location-based services




configuration and synchronization
discovery
determining locations for SIP systems
call routing and presence services
End system service creation
Work in progress within Columbia IRT lab
Mobility modes

Terminal mobility



User mobility



move on-going session to new terminal(s)
Service mobility


multiple users, same identifier
 SIP registration with multiple Contact’s
Session mobility


multiple network attachment points, same identifier
IP mobility or SIP registration & re-INVITE
keep same services when moving
Mobile services

create services on device itself
Session mobility

Walk into office, switch
from cell phone to desk
phone


call transfer problem 
REFER
related problem: split
session across end
devices



e.g., wall display + desk
phone + PC for
collaborative application
assume devices (or
stand-ins) are SIPenabled
third-party call control
Session mobility via 3PCC
INVITE speakerphone
m=audio
c=pc42
192.0.2.1
INVITE display
m=video
c=192.0.2.7
m=audio
c=192.0.2.1
INVITE display
m=video
c=pc42
192.0.2.7
How to find services?

Two complementary developments:


smaller devices carried on user instead of stationary devices
devices that can be time-shared






Need to discover services in local environment

SLP (Service Location Protocol) allows querying for services




large plasma displays
projector
hi-res cameras
echo-canceling speaker systems
wide-area network access
“find all color displays with at least XGA resolution”
SLP in multicast mode
SLP in DA mode
Need to discover services before getting to environment


“is there a camera in the meeting room?”
SLP extension: find remote DA via DNS SRV
Service mobility

Same services, independent of device and network used





user address book
speed dial entries
SIP configuration
network preferences (carrier)
call handling  already handled by CPL, sip-cgi, servlets, … in home server


In mobile networks, provided by



need remote update capability  SIP PUBLISH
GSM SIM (difficult to move to different devices)
HLR in domain domain
Need small, portable token for identification

temporary device may not be completely trustworthy




e.g., airport payphone
one-time passwords (OTP)
used as key into database (challenge-response)
protocol unclear  SIP? LDAP?
Service mobility

Modes:

synchronization




central database


good if intermittent connectivity
Sync-ML?
XPath-based system under development
works only if permanently connected
SIP configuration:


get notified if global or device configuration changes (e.g.,
security update, new end system services)
retrieval via HTTP or similar, not SIP


partial or full updates
related to Internet media guide problem
Locations

Geographic location


Civil location (≠ postal location!)



street address, city
some countries are a bit difficult…
Categorical


latitude, longitude, altitude, velocity, heading
office, library, theater, hospital, …
Behavioral


“public location, don't expect privacy”
“silence is encouraged, don't ring the phone”
Determining locations


SIP entities are often far away from physical user or his current
network (intentionally)
For many devices, can’t afford hardware to determine location

different precision requirements:






GPS doesn’t work indoors, but Assisted GPS (A-GPS) may
Use location beacons: BlueTooth, 802.11



may not offer network connectivity
see our 7DS project: offer local content + location
Physically close by network entities:



“in Fayette County” (within driving distance of service or person)
“on campus”
“in room 815”
“in corner, talking to Bob”
DHCP (same broadcast domain)
PPP (tail circuit)
Not always true with VPNs, but end system knows that it’s using a VPN
DHCP for locations

Proposal: DHCP extensions for geographic and civil
location


geographic: resolution (bits), long/lat, altitude (meters or
floors)
civil:



Also, some LAN switches broadcast port and switch
identification


what: end system, switch or DHCP server
hierarchical subdivisions, from country to street, landmark
name, occupant
CDP for Cisco, EDP for Extreme Networks
Can also use backtracking via SNMP switch tables

locally implemented for emergency services (Perl sip-cgi
script)
Location-based services

Services:

Location-aware call routing






Location-based events





“do not forward call if time at callee location is [11 pm, 8 am]”
“only forward time-for-lunch if destination is on campus”
“contact nearest emergency call center”
“do not ring phone if I’m in a theater”
“send [email protected] to nearest branch”
subscribe to locations, not people
“Alice has entered the meeting room”
subscriber may be device in room  our lab stereo changes
CDs for each person that enters the room
Person + location events
We’re implementing SIP, caller-preferences and CPL
extensions for these services
SIP extensions for location-based
services

Location information is highly sensitive



complete tracking of person
stalkers and burglars would kill for this information
IETF GEOPRIV principle: “target” can control dissemination of
location information




restrict time of day, information (location, heading, velocity)
resolution, number of times queried, destination, retention, …
“Alice is in time zone MET” may be ok for strangers, but “Alice is at
41.872833 N, 087.624417 W, heading NE at 45 mph” is not
GEOPRIV still defining application scenarios
in many cases, easiest to include location information “in-band”
with protocol, as this avoids delegating authorization


otherwise, need to give access key to database to recipient
we propose adding SIP Location header field
SIP service interfaces



<?xml version="1.0" ?>
<!DOCTYPE cpl PUBLIC "-//IETF//DTD RFCxxxx CPL
1.0//EN" "cpl.dtd">
CPL
SIP CGI
<cpl>
<incoming>
SIP Servlet
<address-switch field="origin" subfield="user">
@ECHO OFF
<address is="anonymous">
IF %SIP_FROM%==sip:[email protected]
GOTO BLOCK
<reject status="reject"
public
boolean
doInvite(SipRequest
req) { calls" />
GOTO EXIT
reason="I don't accept anonymous
SipResponse
res = req.createResponse();
</address>
:BLOCK res.setStatus(486);
</address-switch>
echo SIP/2.0 486
Busy
</incoming>
res.send();
</cpl>
:EXIT
return true;
}
CPL
Scripts
#! /usr/bin/env perl -w
# Reject messages whose 'From:' matches 'sip:hgs@' by
# responding with 486 Busy, redirect the others to voicemail
print "SIP/2.0 100 Wait\n\n";
if (defined $ENV{SIP_FROM} && $ENV{SIP_FROM} =~ "sip:hgs@") {
print "SIP/2.0 486 Don't disturb, I am working\n\n";
} else {
print "SIP/2.0 302 Redirect\n";
print "Contact: sip:xiaotaow\@voicemail.cs.columbia.edu\n\n";
}
End system services

Techniques for network services are not
good for end system services:



different service creators
end system requirements
Currently available:


XML-based screen interaction (Cisco)
Java applets (Pingtel, 3G phones)
Network Services v.s.
End System Services
Call
Call
Connection
Connection
Address1
Address2
a. Network service call model
Address
app1
app2
app3
b. End system service call model
Network Services v.s.
End System Services
Network
services
Developer
experienced
developers
Media and other indirect
end system
control via
applications
SDP
User interaction indirect
End system
services
nonprogrammers
direct control
direct
End system service languages






Simple and easy to understand by nonprogrammers
Platform neutral
Express user interactions
Control media and other end system
applications
Extensible to accommodate new services
Restricted to certain class of services, not
necessarily Turing-complete
Endpoint Service Markup
Language (ESML)

XML based language



Defined as an XML schema




Platform and underlying programming language
neutral
Readable by non-programmers
Derivation of new types
Pre-defined types
Tree-like structure
Use packages to group events and actions
ESML example













<esml name="online_call"
require="generic presence ui">
<notification status="online"
priority="0.5">
<address-switch field="origin">
<address is="[email protected]">
<call />
<alert sound=“foo.au"
text="Calling [email protected]" />
</address>
</address-switch>
</notifying>
</esml>
ESML packages
SIP user agent
im
email
web
Presence
presence
agent
calendar conference
SIP
Basic user agent
Generic Media UI
x10
vcr
Device agent
Extend ‘general’ to ‘sip’














<xs:schema targetNamespace="esml:sip"
xmlns:sip="esml:sip"
xmlns:generic="esml:generic"
..........
<xs:complexType name="IncomingType">
<xs:complexContent>
<xs:extension
base="generic:IncomingType">
<xs:attribute name="priority"
type="PriorityType"/>
..........
</xs:extension>
</xs:complexContent>
</xs:complexType>
ESML Service Creation
ESML editor
XML editor
esml.xsl
service.esml
(template)
XSLT
service.html
user
translate.cgi
service_foo.esml
ESML
designer
Configuration
editor
Conclusion

All SIP devices are mobile


integrate devices in environment




easier than trying to carry around
fewer security issues
needs service discovery
service mobility


but mobility is more than a cell phone
remote configuration & synchronization
mobile services via end system service
creation