first, you have to list all the possibilities you can encounter: Bluetooth, Wifi, (ZigBee ?), ...
With Estimote, you are in the Bluetooth Low Energy case. The geofence is a virtual border you build with your beacons, the limit is the transmitting range. Estimote provides you the monitoring technology, witch advertise you when you enter/exit a region (you walk trough the geofence). So I think it's a good idea for you project, the real issue is defining a precise region with your beacons that includes the university.
It seems to me that you can define a region with a UUID for the university, a major defining the building and a minor for the room for example.
UUID univUUID = UUID.fromString("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX");
BeaconRegion univRegion = new BeaconRegion("Univ region", univUUID, null, null);
All the beacons with
univUUID will be checked when you start the monitoring task:
When a folk enters a region, the app' will notify him, and as long as he stays in range of a region-included beacon, he will not have other notification. But when he exits the region (he's not longer in a region-included beacon's range), the app' will advertise him.
That's the good point of the Estimote SDK: it scans depending on a
BeaconRegion, so various beacons cans create a larger region when close enough.
Hope it helps ^^