airserver
airserver copied to clipboard
Doesnt seem to work on iOS9
This is an awesome project, thanks!
I'm trying to share a photo from iPhoto (iPhone 6S iOS 9.0.2) to your airplay server with no success. I can connect to the server from the control center menu, but when trying to share, it doesn't show on this list.
Whats the use case you are supporting right now?
@oNaiPs Thanks for your interest in this project. To be honest, this module is currently work-in-progress. At the moment all my attention is geared towards a collection of more low-level modules that this module can combine to become a complete reference implementation of the entire AirPlay protocol. So I don't recommend anyone to be using this at the moment.
You can see my current work with AirPlay protocol here: https://gist.github.com/watson/50e46a6085ffc805d326
What particular feature are you looking for?
@watson I was just trying out the example/server.js. I was wondering if this device model tries to use some earlier airplay protocol reference? What are you referencing to write the protocol?
@oNaiPs The protocol is always evolving, but in many cases one can get away with using an older version of the protocol since iOS devices will fall back if it detects an Apple TV running an older version of the firmware (which can be spoofed).
I'm using Wireshark and a special piece of hardware that let's me intercept packets sent to and from my testing gear (Apple TV, AirPort Express etc). But I'm also building upon a lot of other peoples work, mostly the Unofficial AirPlay Protocol Specification by Clément Vasseur, though that document is pretty outdated by now - but it's still a good starting point. At some point I would like to make an updated version of it.
@watson Can you tell me how to capture the RTSP packet in iOS9 devices?There are only mDNS packets when i use wireshark.
@weiyi308 your network interface needs to be running in promiscuous mode. I've had some issues with this myself, with is why I've bought a hardware switch with a monitor port. That way I can connect my Apple TV using an ethernet cable and have the switch copy all traffic to/from the Apple TV to my laptop and have Wireshark simply listen on the ethernet interface instead.
""" one can get away with using an older version of the protocol since iOS devices will fall back if it detects an Apple TV running an older version of the firmware (which can be spoofed). """
can you give more info about this?
hello ?
@notedit There's generally two ways that the version of the protocol is negotiated:
- When advertising the AirPlay server on the network (using Bonjour), it's possible to set hardware version and software version in the TXT record. You can see the configuration details that this module advertises here: https://github.com/watson/airserver/blob/master/settings/vasseur.json
- Clients will sometimes try to call API endpoints that's only supported by newer versions of the protocol. In those cases just behave like an old Apple TV would that doesn't support it - I think one would normally just respond with a 404 for an unsupported HTTP endpoint
thanks, it works.