Description
PhoneSync is a Java (command line) program that reads foaf
files and saves the phone numbers into a Motorola GSM phone. Chad Skeeters wrote it for his V551 and he has not tested it on anything else.
This program will get the foaf:name (en or no xml:lang) and foaf:phone values and make sure they are in your phone. It will update an entry if one already exists by the same name and type (home, mobile, work). It will(should) not destroy any of your other contacts. (I would use MotoBackup before you use this program just in case though.). You can add these properties to your foaf:Person resource if you want to specify multiple numbers with the correct type.
xmlns:gsmb="http://goobsoft.com/mobile/0/" <gsmb:mobileTel rdf:resource="tel:''number''"/> <gsmb:workTel rdf:resource="tel:''number''"/> <gsmb:homeTel rdf:resource="tel:''number''"/>
Download
- http://goobsoft.homeip.net/chad/phoneSync/phoneSync.zip
- My program with the source. Current version is 0.1.
Installation
In order to get this program to work, you need to
- Get a Motorola Phone
- Get a USB Data cable.
- Get and install the Driver
Background
My phone crapped out on my and all my phone numbers were lost. I then decided to make sure I have a backup of my phone numbers. I bought a data cable and found MotoBackup
. It had some interesting documentation
on how to send AT commands to the virtual serial port. I found that I could use HyperTerminal to save addresses.
I've also been studying RDF which is a way of representing graphs with URLs. I thought what a better application of a destributed database then a phone updating program.
RDF
Mozilla has some short documentation on it here
, although the specs
are located at the w3c. Basically if you have access to post a file on a server and you have Notepad, you have what you need to post an RDF document. One form (serialization) of RDF is XML. You can use the foaf-a-matic
to generate the content of your foaf file and then save it on a server somewhere. You really don't need to understand much about RDF or XML to get a FOAF file posted.
RDF gives us a way to implement a distributed database. Using URLs for property names allows data to be combined with any other data.
You may be thinking "BAHH!! What are you talking about? Why should I bother with RDF?". The answer is, "Don't you want one place that you update data about yourself?" I know that I don't like when someone asks me to fill out all my contact information again for their online organizer of the year. RDF is just a format, so you don't need to pay to use it.
You may also want to consider signing up with http://videntity.org
. Then have forms just like foaf-a-matic, they host your file for you too. The only down side is that it will only contain the data that it has spots for on the form. That's not a big deal for most people.
Software Design
I wrote the program so that someone can extend com.goobsoft.mobile.Phone and specify it in the sync.properties file. That would work in theory, but the Contact class is structured by types and not all phones have the notion of types.
V551
I bought the V551 around AUG-2005. I like the screen. I like the fact that it's standards complient which makes this program possible. I like the fact that eventually I'll get a bluetooth capable reciever in my car that will work with this phone. But, the sound cuts out for split seconds when it first starts to dial. That may be Cingular though. While I'm at it, I'd just like to say that I hate the fact that my rebate came in the form of a credit card. Now they can track my spending and it's a pain in the arse to spend that last two dollars.
http://www.phonescoop.com/phones/phone.php?p=591
Data Cable
Make sure you get the one for your phone. Here are two links to the data cables for the V551. Should be less than $20
- http://www.cellularfactory.com/det.jsp?d=8079&c=9347
- http://www.mygift.com/motorola/motorola_V551_datacable.html
Drivers
Get the DriverTool program. If it doesn't work, then run it again.
- http://www.bvrpforums.com/phpbb2/viewtopic.php?t=3966
- Thread on bvrp talking about drivers.
- http://www.bvrp.com/Customers/Motorola/DriverTool.zip
- File contains an exe that deinstalls the driver to your phone and installs it again if you have your phone connected.
If anyone knows of a driver for linux, please let me know.
Ant and Java
Ant
Do yourself a favor and put ant in the root of one of your drives. If you use c:\ant, you need to put c:\ant\bin in your PATH environment variable, so you can run ant on the command line. If you edit your path, you have to restart cmd.
- http://ant.apache.org/
- Ant Homepage
Java
Do yourself a favor and put j2sdk1.x.x_xx in the root of one of your drives. If you use c:\j2sdk1.x.x_xx, you need to put c:\j2sdk1.x.x_xx\bin in your PATH environment variable, so you can run ant on the command line. If you edit your path, you have to restart cmd.
- http://java.sun.com/j2se/
J2SE Homepage
Environment Variables
http://www.cs.usask.ca/grads/wew036/latex/env.html
Just run CMD and cd to the phoneSync directory and then run ant
sync.properties
Just add rdf.x entries for all the people you want in your cell phone. Make sure the com port is correct.
Credit
- http://www.csparks.com/MotoBackup/
- Inspiration and some documentation
- http://www.traud.de/gsm/index.html
- Documented where to get the specs and what I was looking for.
- http://www.etsi.org
- European Telecommunications Standards Institute published specs on AT commands
- http://jena.sourceforge.net
- Thank you HP! Need an RDF
parser and SPARQL
query engine.
- http://users.frii.com/jarvi/rxtx/credits.html
- Couldn't do it without a library for accessing serial ports.
Licenses
- http://jena.sourceforge.net/license.html
- Jena Licence
- http://jena.sourceforge.net/ARQ/license.html
- ARQ Licence
- http://users.frii.com/jarvi/rxtx/license.html
- RXTX (javax.comm implementation for windows)
Reference
- http://del.icio.us/goobsoft/gsm
- my bookmarks that relate to GSM.
- http://goobsoft.homeip.net/chad/phoneSync/g20software.pdf
- Spec for the g20 that works for the V551 too. (Or at least the part dealing with addresses)
- http://bitpim.sourceforge.net
- Have alot of work done for codes to program phones.
Issues
RDF
- If you have two foaf:name entries that have language tags en or "", then you will get duplicate entries in your phone.
COM
- You can use HyperTerminal to tell if your serial port is working. Type AT and you should see OK. If that doesn't work neither will this program.
- Make sure you have the right COM port specified in sync.properties
- Try reinstalling the driver
- Try unplugging the cable and plugging it back in
- Try turning off the phone and turning it back on
API
- http://jena.sourceforge.net/javadoc/
- Jena API
- http://java.sun.com/products/javacomm/reference/api/

- Javadoc for javax.comm package. (same as gnu.io package in RXTX)
- http://users.frii.com/jarvi/rxtx/doc/

- Javadoc for gnu.io package. (Not as usefull documentation as javax.comm. 11/2005)
Future improvements
- Post a rdfs or owl for http://goobsoft.com/mobile/0/
- iCal
or hCal
support so that the events of multiple calendars can have alarms on my phone.
- Better language tag support
- vCard
(I don't know I want to encourage people to use RDF. Maybe the RDF version)
- Support for more phones (not anytime soon unless someone gives me a phone and data cable to test with)
Feedback
Please don't call me to tell me what you think. Send me an email, or post a comment on this page.