Apple, in the iOS 7.1 update, added “support to allow an AirPlay device to discover Apple TV over Bluetooth in environments where multicast or Bonjour traffic is blocked on the network or the AirPlay device is on a different subnet.”
The PSU AirPlay app has now been released at http://airplay.psu.edu! It’s only available for download from a PSU ip address since this is an PSU enterprise app. I’d like to Thank Sherwyn Saul and Ben Brautigam for their coding on this project. This wouldn’t have been possible without them.
The new version adds iPhone and iPad support, and error handling when an internet connection is not available.
If you would like to add an AppleTV to the available list please contact me at email@example.com.
One of the most recent challenges I had was getting AppleTVs working in the classroom. Doceri, similarly Splashtop Whiteboard, provided some relief and made the use of iPads in the classroom finally possible. This wasn’t a good enough solution for many who still wanted full iOS mirroring. Our current wireless infrastructure, like many larger universities, is Aurba utilizing 802.1x authentication and Bonjour(multicast) disabled.
I worked with TNS, our telecommunications and networking solutions department, to set up several “test” bonjour deployments on separate SSIDs so we could determine the usefulness of the technology and help look at solutions. During that time I investigated several Bonjour repeaters(1)(2), gateways(3)(4), and software products(5)(6). Aruba AirGroup was also a consideration, however there were cost and management issues.
The first problem to address was getting the AppleTV onto the network. Like many others I set up 802.1x authentication and found several problems, mainly the NTP service as well as how cumbersome it was to setup. I decided fairly quickly that using 802.1x authentication wasn’t a feasible solution for deployment and decided to wire all AppleTVs using ethernet. This also meant that the AppleTVs would not be on the same network as the wireless clients and I had to use a bonjour repeater/gateway. Sure, I could have setup VLANS, etc.. but these solutions wouldn’t scale very easily and be cumbersome to manage. I ended up using Avahi running on Raspbian(RaspberryPi) installed in the network closet next to the wireless controller at two campuses. This meant that I had to manually enter these bonjour registrations. Keep in mind this was just on our test networks that actually still had bonjour enabled.
I had been using Network Beacon for years to proxy bonjour registrations and started to wonder if I could simply do the same thing running on an iPad. It took me awhile to research, but I finally came across these two articles(1)(2) and the DNSSDObjects sample code from Apple. Some quick changes to the sample code and I had successfully proxied my first AppleTV registration to an iPad. I almost didn’t expect it to work but my first connection went right through and I had the first proof of concept in early September 2013.
I showed a few staff what I had working, and within a few months thanks to Sherwyn Saul and Ben Brautigam’s help with coding we have a working iOS enterprise app. Penn State users are now able to locate and connect to registered AppleTVs using this app.
I was interested in using AirServer or X-Mirage, however both products used dynamic ports and couldn’t be manually registered. This might had been an easier solution for podium computer installations, similarly to how we deployed Doceri. I contacted both companies but never got a way to hard code the ports when the application launches. Hopefully they will update their software in the future.
Future plans include looking at bluetooth discovery with iBeacons for locating devices.
UPDATE: Technical Q&A QA1753 from Apple was updated on 11/14/2013 for the iOS 7.0 release introducing “a new NSNetService property, includesPeerToPeer, that can be used to enable registration and discovery over Bluetooth”. I will have to test more with this.
UPDATE 3: Apple released discovery over bluetooth (link). I’ll have to dive into what api they have made available.