CINEMAs Ubi Comp Subsystem Stefan Berger and Henning
CINEMA’s Ubi. Comp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs, stefanb}@cs. columbia. edu
Outline Idea User Interfaces Software Components Architecture Summary
Idea 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 i. Buttons … other unique credentials like biometrics
Administrator 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 ‘Room. ACL’ table
Administrator 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 ‘Config. Data’ table Pages currently accessible by everyone Will be upgraded to administrator level
User Pages Credential Management Add any supported credential you want i. Buttons or swipe cards Credential Management Page Maps to ‘Credentials’ table Device Preferences Page Configure device to your preferences Device Preferences Page Info stored into ‘Config. Data’ table
User 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 ‘Room. Prefs’ table
User 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 Components ‘Door. Daemon’ To be deployed in every room Processes card or i. Button data Maps credential data to user name Runs scripts relevant for room Writes its own parameters into configuration table Gets name of scripts from database table Allows other software to find it Runs as server or client Client: needs to poll – bad!
Device Scripts Dynamically ‘sourced’ by Door. Daemon 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 Components i. Button reader Polls i. Button reader hardware every 3 seconds Capable of running in server or client mode Client mode avoids polling by ‘Door. Daemon’ 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 i. Button reader possible
Software 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 i. Button reader software
Architecture Adding Credentials to the System Credentials. CGI HTTP Server Add Credential Data for User X 5 Credentials table 2 4 i. Button Data 1 Credential Data i. Button Reader Software (TCP Server) 3 User X Command: Read i. Button Data
Architecture IRT-LAB Detecting a User Credential Reader Software Card Number Serial Number Credential Data Map(Credential data) = User X Door Daemon Device Control Scripts Execute scripts Credentials table User X in IRT-LAB Script names Last-seen table Configuration Data
Future all-SIP Architecture Credential Reader Software Card Data Services at IRTLAB: Radio, Light, IPPhone i. Button Data IRT Lab SIP Presence Agent (SIPd) SIP PUBLISH: User X in ‘IRT-LAB’ HTTP: Add device line for User X, Configure ringer tone, speed dial, etc. SIP NOTIFY: User X in ‘IRT-LAB’ SIP NOTIFY: User X’s preferences SIP MESSAGE: Turn Light On SIP MESSAGE: Play Radio Station 5 SIP-devctrl
SIP for device control xyz@phone. cs. columbia. edu slinke@phone. cs. columbia. edu Slink-e devctrl Registered callbacks Message Content Extraction De-multiplexing Dispatcher Basic SIP stack Port 5060 MESSAGE NOTIFY SUBSCRIBE INVITE REGISTER Downwards: API function calls Upwards: Callbacks XYZ module Methodhandling functions Sipstack 2. 0
Other Software Slink-E library (slinke. tcl) Controls Slink-E Learns and replays 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 Software i. Button library Enables TCL to be used with i. Button Allows to Read serial number Read/Write access to data on i. Button Read i. Button parameter and type information i. e. , memory size
Summary & 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
END
Tables Credentials Stores user credential data User’s email address MD 5 hash of card ID Some card info describing type of card Rooms Room. ID: Name of room Default SIP phone URI Extended to host machine names in a room
Tables 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
Tables Config. Data Table of attributes and values Attributes defined for all kinds of information For distributed applications Was easier to use SQL than Service Discovery…
- Slides: 23