Upload
marshall-allison
View
219
Download
2
Tags:
Embed Size (px)
Citation preview
CINEMA’s UbiComp Subsystem
Stefan Berger and Henning Schulzrinne
Department of Computer Science
Columbia University{hgs,stefanb}@cs.columbia.e
du
OutlineOutline
Idea User Interfaces Software Components Architecture Summary
IdeaIdea Use SIP to enable ubiquitous
computing scenario Set up environment according to the
preferences of the user Device control via SIP MESSAGE Tie CINEMA to building infrastructure
User must authenticate Swipe Cards iButtons … other unique credentials like
biometrics
Administrator PagesAdministrator Pages Room administration
Create and delete rooms Define default SIP URL for phone in a room Declare names of computers in this room Room administration page Maps to ‘Rooms’ table
Room access control Give users access to rooms Room Access Control Page Maps to ‘RoomACL’ table
Administrator PagesAdministrator Pages Global configuration page
Shows much read-only status information Where and whether reader software is running
Allows to specify scripts that are to be run in different rooms
Configuration information for Pingtel Xpressa Setup Page Much info from ‘ConfigData’ table
Pages currently accessible by everyone Will be upgraded to administrator level
User PagesUser Pages Credential Management
Add any supported credential you want
iButtons or swipe cards Credential Management Page Maps to ‘Credentials’ table
Device Preferences Page Configure device to your preferences Device Preferences Page Info stored into ‘ConfigData’ table
User PagesUser Pages Room Phone Preferences
Default entry automatically redirects to default phone
Redirect phone calls to a phone in the room
Allows to set timeout when room goes back to ‘neutral’
Room Phone Preferences Page Information stored in ‘RoomPrefs’ table
User PagesUser Pages
Tracking other users Who is where? Who is in which room? Data is ‘byproduct’ of authentication Use to ‘log out’ from room Tracking User Page Maps to ‘last_seen’ table
Software ComponentsSoftware Components ‘DoorDaemon’
To be deployed in every room Processes card or iButton data Maps credential data to user name Runs scripts relevant for room
Gets name of scripts from database table Writes its own parameters into
configuration table Allows other software to find it
Runs as server or client Client: needs to poll – bad!
Device ScriptsDevice Scripts
Dynamically ‘sourced’ by DoorDaemon Return namespace when ‘sourced’ Need to implement interface
$ns_action(): called when new user enters a room
Arguments: user’s email address, room $ns_cleanup(): Called every few seconds;
script must decide what to do Argument: room
Software ComponentsSoftware Components iButton reader
Polls iButton reader hardware every 3 seconds
Capable of running in server or client mode
Client mode avoids polling by ‘DoorDaemon’ Writes its parameters into configuration
table – for status page Can be started in ‘web’ mode
Used to add credentials to the system Only one such iButton reader possible
Software ComponentsSoftware Components
Swipe card reader Uses software-interrupt to read card
data from serial port Supports also PS/2 card readers
Report different patterns PS/2 reader behaves like keyboard; needs
GUI for ‘focus’ Otherwise similar to iButton reader
software
ArchitectureArchitecture
Credentialstable HTTP
Server
Credentials.CGI
iButton ReaderSoftware
(TCP Server)
Command: Read iButton Data
iButton DataUser X
Add Credential Data forUser X
Adding Credentials to the System
Credential Data
2
3
1
4
5
ArchitectureArchitecture
Card Number
Credential ReaderSoftware
Serial Number
DoorDaemon
Last-seentable
Credentialstable
Map(Credential data) = User X
User X in IRT-LAB
ConfigurationData
Script names
DeviceControlScripts
CredentialData
Detecting a User
Executescripts
IRT-LAB
Future all-SIP ArchitectureFuture all-SIP Architecture
SIP PresenceAgent (SIPd)
Card Data
Credential ReaderSoftware
iButton Data
SIP PUBLISH: User X in ‘IRT-LAB’
SIP NOTIFY: User X in ‘IRT-LAB’
SIP NOTIFY:User X’s preferences
SIP MESSAGE: Play Radio Station 5
HTTP: Add device line for User X, Configure ringer tone, speed dial, etc.
SIP MESSAGE: Turn Light On
IRT Lab
Services at IRT-LAB:
Radio, Light, IP-Phone
SIP-devctrl
SIP for device controlSIP for device control
Basic SIP stackR
EG
IST
ER
Method-handlingfunctions
INV
ITE
SU
BS
CR
IBE
NO
TIF
Y
ME
SS
AG
E
Sipstack2.0
DispatcherDownwards:
API function callsUpwards:Callbacks
Slink-edevctrl
MessageContent
ExtractionDe-multiplexing
Registered callbacks
XYZmodule
Port 5060
Other SoftwareOther Software Slink-E library (slinke.tcl)
Controls Slink-E Learns and replays IR sequences IR sequences associated with a ‘button’ Load and Store IR sequences Controls the radio in the lab Used on top of sip-devctrl
Sends IR sequences according to SIP MESSAGE content
Other SoftwareOther Software
iButton library Enables TCL to be used with iButton Allows to
Read serial number Read/Write access to data on iButton Read iButton parameter and type
information i.e., memory size
Summary & Future WorkSummary & Future Work
Prototype in working condition Combine card reader software
pieces Two serial ports Possibly combine with ‘Door Daemon’
Extend ‘Door Daemon’ Go towards all-SIP architecture
Use SIP’s PUBLISH method for user’s location publication
ENDEND
TablesTables Credentials
Stores user credential data User’s email address MD5 hash of card ID Some card info describing type of card
Rooms RoomID: Name of room Default SIP phone URI Extended to host machine names in a
room
TablesTables
Last seen table User’s email address Location Date user entered location Lastseen.tcl for table management
Expiration of users Who is in a room Lookups in table
TablesTables
ConfigData Table of attributes and values Attributes defined for all kinds of
information For distributed applications
Was easier to use SQL than Service Discovery…