Dynamic default printer

In my company, the huge part of team members are using the SUN thin client solution called Sunray. (Sun Ray Software is a secure, cost effective solution that delivers a rich, virtual Windows, Linux or Solaris OS desktop to Sun Ray clients.)
Why choose thin clients? This reduces the management load, time, increase security, light upgrades procedures and more!

Anybody in the building may walk and reconnect to its desktop everywhere with a personal smart card. (The access badges and smart cards can also be integrated on the same plastic card) The main problem with “volatile” desks is the facilities management.
Example: normally, your desk is at the 3rd floor but today, you’re in meeting the whole day on ground zero… And, if you need to print an urgent report? It will be sent to the printer next you on the … 3rd floor! Perfect for secretaries who need to loose some weight but not very efficient 😉

The Sunray software comes with lot of interesting tools to perform the daily users/sessions management. A nice website is available but the same operations are available via command line tools! Ouf! The more interesting one is utaction(1):

# ./utaction
Error: -c or -d option must be specified
Usage:  utaction [-D display] [-c ccmd] [-d dcmd] [-t time] [-i] [-e] ...
 
Options:
  -D  X display to use
  -c  command to run on connection
  -d  command to run on disconnection
  -t     seconds to be stable before taking action
  -i          perform for the initial state
  -e          exit immediately after executing any command

In the default configuration, utaction is just started with a ‘-d’ argument (which locks the screen via utxlock & xscreensaver).

To perform action when the user connects (open a new session or re-insert his card on another thin client), I used a ‘-c’ argument calling a simple perl script.

How to detect the nearest printer? Well, there is no other solutions than walking thru the whole building and for each thin client, write down his MAC address and nearest printer name (in terms of distance). Nice job for the helpdesk agents 😉
These info are stored on a MySQL database. The helpdesk can manually assign the “nearest” printer to a client via a nice web interface. All printers should also be defined or updated.

This system is in a test phase right now and works perfectly. One of the major issue in the future will be the database integrity! A procedure must be defined to smoothly physically move a thin-client to another desk (or replace it).

Actually the script started by ‘utaction -c’ only sets only the default printer but very nice feature can be added:

  • The golden solution should be to link the thin-client with a VoIP solution. So the telephone extension follows the users sessions.
  • Some kind of Instant Messenging features (popup windows when a users logs in)
  • Track users in a live map.
  • And much more!

Interested? Contact me to discuss about this topic.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.