Printers continue to be a support cost driver, and iBeacon technology can help drive down support tickets and increase user delight. The Casper Suite 9.5 introduced iBeacon support for both OS X and iOS, and we have been working hard at Twocanoes Labs to make sure that our hardware and software work great with their management suite. This document (and video) show you how to configure the Casper Suite and our Bleu Station beacons to automatically setup and remove printers based on proximity to a beacon.
Photo: Bleu Station Beacon with power supply
Configure JSS clients to monitor beacons
The first step is to turn on support for iBeacon in the Casper Suite so that the clients start monitoring iBeacons. In Settings, select Computer Management->General, and make sure "Monitor iBeacon Regions" is selected.
Configure an iBeacon in the JSS
Now you are ready to enter in settings for a beacon in the JSS. Once the settings are complete, you can use the Twocanoes Labs Bleu JSS app (available on App Store) to use these settings to set up the Bleu Station beacon.
To set up a beacon in the JSS, select Settings->Network Organization->iBeacons:
Create a new iBeacon:
Define the UUID, Major and Minor numbers of the beacon. If you don't already have a UUID for your organization, create one with the "uuidgen" command line tool:
The major number usually defines the building or some major category, and the minor number is usually the room number or something more specific. The major and minor numbers must be between 0 and 65535. Note that you cannot select the "Include any value" option. In order to use these values to program a physical beacon such as the Bleu Station beacon, you must have values for UUID, major and minor numbers. You can always go back and create an iBeacon region with wildcards after programming the Bleu Station Beacons.
Defining the Policy
Now that the beacon is defined, we can use that beacon to trigger a policy. First, set up a new policy to create a printer:
Give the policy a name:Trigger the policy on beaconStateChange and make it execute "ongoing":
Finally, have it add a printer by adding a command in the Files and Processes:
/usr/sbin/lpadmin -p "ColorPrinter" -E -v lpd://127.0.0.1/test -D "Color Printer" -P "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/Resources/Generic.ppd
Making The Policy Apply in Range of A Beacon
To make the policy apply in range of a beacon, you need to scope the policy so that whenever the client is in range of the beacon, the policy is triggered. Set the policy so that it targets all computers and has a limitation to only apply when in range of the beacon configured above:
Removing the Policy when Exiting Beacon Region
If you want to remove the printer when exiting the beacon, add a policy similar to above, but have it run the command "lpadmin -x ColorPrinter". Add the iBeacon you defined as an Exclusion, so it will remove the printer whenever the beacon region is exited.
Programming the Bleu Station Beacon
Now that the beacon is defined in the JSS, download the Bleu JSS app from the App store, and launch it. Authenticate against your JSS instance:
Then select the beacon you defined in the JSS:
Finally, plug in the Bleu Station beacon and it will automatically be configured:
You are now all set up. Go to a managed client and do a tail on the jamf log on the client, plug in the beacon, and make sure the Mac is nearby. Make sure bluetooth is turned on and you will start seeing enter and exit events when nearby the beacon.