200 likes | 353 Views
MobileRC. Will Worden Jackie Huynh Chris Shrives. What does it do?. Use your cell phone as a remote control for a media control center Two sides – Computer Side application and Phone Side application. Technologies involved. WLAN connection between phone and computer
E N D
MobileRC Will Worden Jackie Huynh Chris Shrives
What does it do? • Use your cell phone as a remote control for a media control center • Two sides – Computer Side application and Phone Side application
Technologies involved • WLAN connection between phone and computer • Phone that can run J2ME application (We tested on a Nokia e71/ Symbian S60 FP2) • Computer side requires Python, VLC Player (default player)
How do we do it? • Interpreter runs on computer, Phone connects to. Interpreter parses commands from phone and passes them to VLC for execution INTERPERTER TCP TCP
Phone Side • J2me application • Connects over Wireless LAN rather than over the air through cellular network • No data costs associated with it • TCP /UDP connection, predefined ports
Phone Side • Networking aspects • Finding Peers • Features both manual entry (history of previous connections stored locally on phone) • Automated peer detection on WLAN • UDP broadcast on subnet to find listening peers
Peerfinding Registrar Service
Peerfinding Broadcast Address Message hashed with md5
Peerfinding Password matched, Connect
Phone Side • TCP message commands after connection established • Predefined port on Computer Side, OS assigns Phone side port
Problems Encountered on PhoneSide • Problems found: Many wireless routers don’t allow broadcast msg • Nokia does not recognize 255.255.255.255 as valid host • Symbian does not allow phone to report its own IP address (Security feature) • Nokia phones cannot connect to an address with port 80 (Midlet must be signed by trusted authority such as Verisign or Thawte) • Workaround: Connects to a registrar service that provides the IP information.
ComputerSide (Interpreter) • Python 2.6 • Console Application (GUI feature, cut) • Maps internal commands to VLC commands • Accepts TCP Connections from mobile devices. • Makes separate TCP connection to VLC • Connects to VLC’s Remote Control Interface • Why have interpreter? Why not connect mobile devices to VLC directly?
ComputerSide (Interpreter) • Decoupling • You can build a different application to act as the remote control. (e.g. iPhone application) • You can control other media players as well, as long as they have some sort of remote control interface INTERPERTER
ComputerSide (Interpreter) • Usage:
Problems found on Computer Side • VLC does not provide any playback information that can be used to get status of the player. • Commands sent to VLC are limited (e.g. Pause/Resume) • Difficult to detect VLC installation location. Just assumed default.
Commands • Launch • Play • Pause • Stop • Next • RWD • FFW • Previous • Volume +/- • Mute (VLC bugged) • Full Screen • Quit
GUI • KUIX library (http://www.kalmeo.org/projects/kuix) • Uses CSS to create dynamic UI
Outside sources • http://www.kalmeo.org/projects/kuix • Md5 implementation for j2me • http://mobilepit.com/10/compact-md5-class-library-for-j2me-javame-app.html
Open Source! • This project is hosted by Google’s Project Hosting • http://code.google.com/p/mobilerc/ • MIT Licensed