23
CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia

CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

Embed Size (px)

Citation preview

Page 1: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

CINEMA’s UbiComp Subsystem

Stefan Berger and Henning Schulzrinne

Department of Computer Science

Columbia University{hgs,stefanb}@cs.columbia.e

du

Page 2: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

OutlineOutline

Idea User Interfaces Software Components Architecture Summary

Page 3: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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

Page 4: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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

Page 5: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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

Page 6: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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

Page 7: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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

Page 8: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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

Page 9: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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!

Page 10: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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

Page 11: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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

Page 12: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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

Page 13: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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

Page 14: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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

Page 15: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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

Page 16: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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

[email protected]

[email protected]

Port 5060

Page 17: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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

Page 18: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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

Page 19: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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

Page 20: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

ENDEND

Page 21: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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

Page 22: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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

Page 23: CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University {hgs,stefanb}@cs.columbia.edu

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…