SmartMediaStreamer
Installation Guide
The prototype has been developed and tested on a Nokia N80 3rd edition phone. Everything described here relate to the specific model and to the installation process that I have followed. In theory the guidelines should also work for any other 3rd edition phone but this cannot be guaranteed. Furthermore the applications has not been tested with other versions of PyS60.
Client side application for Nokia N80 (or any other 3rd ed. model)
In order for the application to run, you first have to install Python for Series 60 on the phone. All versions of PyS60 can be found at http://sourceforge.net/project/showfiles.php?group_id=154155
1. Download and Install “PythonForS60_1_3_21_3rdEd_selfsigned.SIS”
2. Download and Install “PythonScriptShell_1_3_21_3rdEd_selfsigned.SIS”
3. Download and Install “aosocket_unsigned.sis” from http://contextwatcher.lab.telin.nl/ContextWatcherPortal/software/aosocket_unsigned.sis
The “aosocket_unsigned.sis” module is necessary for the asynchronous Bluetooth services. You need to sign this before installing it on the phone otherwise the installation will not be allowed. Details of how you can sign a SiS file can be found at http://serko42.googlepages.com
4. Download the SmartMediaStreamerClient from Download page.
5. Unzip the downloaded file and copy all its contents into the phone's Python directory. This should be under “/E:/Python”. You should copy three (3) files: SmartMediaStreamer.py, AoDisoverer.py and RemoteControllerPhone.py. In the future this will be done using a SiS package that will install the application automatically. The project's website will be updated accordingly.
6. Download the SmartMediaStreamerImages from the Download page. Unzip the archive. This should give you a folder called simply SmartMediaStreamer. Create a folder called Images (in not already there) in the phone's E: directory in order to have E:/Images. Then copy the folder SmartMediaStreamer which contains all the necessary images into the E:/Images folder in the phone.
After copying the files in the Python directory you can run them through the phone's Python application. By pressing “Options ->Run script” scroll down and run the SmartMediaStreamer.py module. This is the main module and will import the other two automatically. However to do anything useful you must first install the server side application as well.
Server side application for Linux PCs.
The information here refers to all PCs used in the application whether they are in client mode or server mode. Actions unique to each of these modes are provided separately. Note that the application needs at least two (2) PCs to provide teleporting services. It can however be used with one PC for all other services.
1. Install a Linux distribution, preferably Debian based because apt-get will largely ease the following configuration. Kubuntu Edgy Eft was used in this project.
2. Check that your Bluetooth adapter is working: type hcitool dev in a terminal and if you get something like hci0 00:02:0F:6B:92:6A then the BT adapter is operational.
3. Go to http://org.csail.mit.edu/pybluez/download.html and download the latest PyBluez source code. Unzip the archive using tar zxvf filenane and go into the newly created directory named after the archive. Read the REAME file for installation directions. If you are using a Debian based system you can skip the above instructions and simply type apt-get install python-bluez in a terminal.
4. Install mplayer. It can be found at www.mplayerhq.hu or through apt-get install mplayer.
5. Install openssh by typing apt-get install ssh.
6. Install sshfs by typing apt-get install sshfs.
7. Create a pub/priv key pair by typing ssh-keygen in your terminal
On the PC that is going to be used as the central server (i.e. SERVER MODE)
1. Define a standard IP for the server using sudo ifconfig ethX ipaddress. Remember it as you will need it when configuring the other PCs running in client mode.
2. Create a folder named VideoServer in your home directory. This is going to be the directory with all the media files. You can use any name for this directory but make sure you remember it as it will be used when configuring the other PCs. IMPORTANT NOTE:This directory should contain other directories which contain media files. Do not create more directories in each folder as at this point the application cannot parse them. Remember, one level of directories only!
On the other PCs that will stream media from the central server (i.e. CLIENT MODE)
1. Type ssh-copy -i .ssh/id_rsa.pub remoteUser@remoteIP in order to copy each PC's ssh pubkey on the server and allow seamless connections to the application. remoteUser is the login account used on the central server and remoteIP is the IP of the central server.
NOTE: if a message comes up saying like “the remote host key identification has changed and you have to contact your system administrator to solve the problem”, then you had probably defined another server in the past with the same IP address and now when SSH checks its known_hosts file it finds the IP address with a different hostname in front of it (such as bob@serverIP instead of alice@serverIP) In this case you must delete or rename the known_hosts file in your PC's .ssh/ folder and create a new one after invoking an ssh connection to the new server.
Running the server side application on any PC.
1. Download the SmartMediaStreamerServer from the Download page.
2. Unzip the archive and go into the directory created. type python ServerPc in a terminal and follow the instructions. If you are on the central server you will just have to specify it in the first question and then the application will wait for connections. If you are on any other PC running in client mode you will be asked further questions for this first configuration. You need to know the user account of the central server and its IP address as well as the directory name where you are storing the media on the central server. If you provide this information correctly the application will connect to the central server and get access to the media files.
If everything goes fine you should then be able to run the application on the phone. The phone will find the PCs' Bluetooth name and you will have to add them into your profile. Then when loading the profile the phone will contact each PC and will determine which one is closer to you. It will then provide you with a list of available media to choose from. After initiating a media stream you will be able to control it from the remote controller module on the phone which is loaded automatically. If you move closer to another PC the phone will se
Copyright (c) Serko Katsikian, 2007