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

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

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

COM

API

http://jena.sourceforge.net/javadoc/
Jena API
http://jena.sourceforge.net/ARQ/javadoc/
ARQ 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

Feedback

Please don't call me to tell me what you think. Send me an email, or post a comment on this page.

Comments