I had to change my mobile lately and of course I wanted to copy all my contacts without actually typing in everything from the start (~200 entries). Who wouldn't like to take their contact list with them in this situation?
How hard can it be? Unfortunately for Siemens CX65 -> Nokia 6300, it takes around 2 weeks...
Part 1: trying to copy data
That's a short part - everyone uses their own format / tools, no way to copy.
Part 2: retrieving the data from CX65 (I'm a programmer after all...)
It's not hard to get the full contact list from a siemens phone... if you use windows and you need it only for backup, that is, because there are no non-win tools and no standard are supported apart from file-access obex. To get a proper format, you need to: remove pin lock, take out the sim card, restart phone, use irda / serial cable, copy files from a hidden directory. "Copy" involves writing a wrapper to standard obexftp to do connection retries, because siemens communication dies after every single transfer for some random time between 5 secs and 5 minutes.
Each record is stored in a separate file, using continuous {record id, record contents} list of attributes (along with additional data, which is neither used nor displayed anywhere as far as I can tell, but makes reverse engineering the format so much easier.... :/ ). Encoding is something completely custom - neither utf-16, nor ucs2. Ok - now I've got some nice objects, but...
Part 3.1: storing the data in 6300 using "standards"
Only way to access the phone through standard usb cable is cut-down AT mode. Of course it supports obex, but it's some cut-down, proprietary version made by nokia - can't connect there with standard libraries from linux. Why would we need obex to be standard anyways? "Standard" ways allow me only to store name+number pair through gsm commands - that's not enough.
Part 3.2: using java api
Nokia publishes a nice standard plugin for java IDEs - typical mobile toolkit... as a windows install. It's a custom installation program, which wine can't handle. After finding someone who has windows, installing the files (unpacking really, nothing is "installed"), copying them to my box they work - kind of. I just need to change all the paths in the config to point to XXX.jar, instead of XXX.exe which wraps that jar :/
6300 supports access to contact lists via standard api. I can read them fine. It also reports no problems at all when adding new contacts. The only problem is that they are not stored anywhere... they are sent to /dev/null
Part 3.3: using flash
Are the flash capabilities / APIs documented anywhere at all? Failed to find anything.
Part 3.4: giving up
I finally found someone with a windows machine, installed (not uninstallable) nokia suite, converted my contacts to .csv and imported there.
Summary: proprietary formats, own encodings, nonstandard standards, hidden data, windows only unpackers, useless .exe-cifying of .jar-s, limiting known and advertised APIs, complete lack of support...
Siemens and Nokia product managers - DIAF!!! Adding all the research, testing and development time, it took me only 2 weeks to migrate my phonebook. I'm glad I only have to do that once every 3 years or so.