Transferring Text Messages (SMS) from Nokia to Android

Around a month ago I replaced my old Nokia 6300 cell phone with the Android-based Motorola Milestone (aka. Motorola Droid). While I could easily transfer all contacts by adding them to my GMail contacts list the text messages (aka. SMS) were stuck on the old phone without any official way to transfer them to the Milestone. Fortunately, there is a solution using Gammu, some Perl scripting and the Android SMS Backup & Restore application.

First, extract all text messages from your Nokia phone using Gammu’s “smsbackup” feature.

gammu backupsms <filename>

I won’t go into details how you need to configure Gammu to connect to your Nokia phone as it comes with an excellent man page.

Next, we will convert the backup file created by Gammu into the XML format understood by SMS Backup & Restore. For this purpose, I created a little Perl script (released under the GPL), which is available for download at: http://thilo.ginkel.com/archive/sms-gammu2android-0.1.tar.gz

Extract the script to a directory of your choice and perform the conversion by feeding the Gammu SMS backup to the script on STDIN and redirecting the conversion result from STDOUT into a new file:

./sms-gammu2android < <filename> > sms-nokia.xml

where <filename> refers to the file you instructed Gammu to store the SMS backup in.

Next, you will need to copy the conversion result stored in sms-nokia.xml to the SMSBackupRestore directory on the SD card of your Android phone.

After that, install SMS Backup & Restore from the Android Market. You can easily do so by scanning the QR Code next to this paragraph with your phone. If you do not have a QR Code scanner on your phone, just open this post in the web browser on your phone and click on the QR Code or search for “sms backup restore” in the Android market.

Finally, fire up SMS Backup & Restore and import the converted text messages by selecting “Restore SMS Messages” from the main screen.

Done. ;-)

Please note: At the moment, conversations imported that way will show an incorrect time stamp until you have opened them once in Android’s “Messaging” application.