For a more robust tool to restore text messages to Blackberry devices from a CSV (comma-separated values) backup, refer to my other tool, CSV2IPD.
The original article, written in 2010, is archived below for informational purposes only.
This may seem an easy task - one may immediately think of using the Device Switch Wizard in Blackberry Desktop Manager or do a quick search for some SMS backup/restore software which will do the job. However, while I was doing it, I came across some challenges which turns this into a difficult job:
1. The Device Switch Wizard found in the Blackberry Desktop Manager simply does not migrate the SMS messages.
2. There are plenty of applications that perform SMS backup/restore for Windows Mobile but there are none for Blackberry.
The first challenge is expected as many users simply do not need to migrate text messages to their new phones and it is therefore understandable that the Device Switch Wizard ignores SMS during the migration process but the second challenge disappoints me. I was realistic - I never expected to find a tool that transfers text messages on-the-fly, perhaps with the tool running on Windows, the Blackberry connected via Blackberry Desktop Manager and the Windows Mobile device connected via ActiveSync. BUT I was hoping to find some software that can restore Blackberry SMS from a backup, perhaps XML-formatted, which can be created by a tool running on Windows Mobile.
I was wrong - there are no such applications for Blackberry. This is explained by the fact that RIM does not provide an API for Blackberry applications to programmatically access the SMS messages store (there are, however, APIs to access email messages).
My approach
My ideas come from the fact that Blackberry Desktop Manager allows user to backup device memory (including contacts, calendar and SMS) into an IPD file, and restore from the IPD backup. Although the IPD file format is not documented by RIM, it is easy to reverse engineer (for example, by using a hex-comparison tool) due to its unencrypted and tokenized nature. There are previous attempts to do this, for example ipddump and MagicBerry. The latter is extremely useful as it allows you to view, edit, merge and split IPD files.
Keeping the above in mind, I came up with a tool that runs on Windows Mobile device and backs up all text messages into an IPD file. The file created can later be opened using Blackberry Desktop Manager and the text messages can be restored back onto the Blackberry device.
Final product: SMS2IPD
In the lack of a better name, let me call it SMS2IPD, short for SMS to IPD Converter. Here's how to use it:
1. Run the tool on your Windows Mobile device. You will need .NET Compact Framework 3.5 and above.
2. Select the correct time offset so that SMS timestamps will be correctly displayed. For example, if you are in GMT+8, select -8 for the time offset. The selection is needed as I am not sure which field to set to specify the timezone of the SMS messages.
3. Click on Start, choose the location to save the IPD file. Give the application some time to run, when completed, it will produce the IPD file.
4. Connect your Blackberry and start Desktop Manager, choose Backup/Restore, then click on Restore again. Select the IPD file created in step 1 and Desktop Manager will proceed to transfer all SMS to the device.
Note: this process may take a long time during which Desktop Manager may seem to hang. It will also overwrite all existing text messages on the Blackberry device, so back them up and merge them to the IPD first using MagicBerry. MagicBerry may also seem to hang when loading a large IPD file, so be patient.
Limitations and future improvements
I myself reverse engineer the IPD file format by using a hex editor, a hex comparison tool and MagicBerry, with some references to ipddump and MagicBerry source code, so there will be cases not handled properly. These include SMS with special characters, unicode SMS, and SMS sent from a timezone different from your device timezone.
Upon imported on the Blackberry device, all messages may appear as unread. You can mark all as read by scrolling to the top of the messages list (which displays the date), press the Blackberry key and choose Mark Prior Opened.
Some Blackberry devices by default will delete text messages older than 30 days. This behaviour can be changed by opening Options in Messages, choose General Options, and select a longer period for "Keep Messages".
I attached the source code for those interested to improve the application. You can modify and re-distribute the application and its source code as you like, but please mention that the source code was taken from my blog. You may not, however, use the source code and/or the application for any commercial purposes.
Credits
To read the SMS messages from a Windows Mobile device, I am using MAPIDotNet library found on codeproject, written by rwt33. The version I used was downloaded some time back, so it may differ significantly from the current version found in the project article.
Downloads

It would be so nice, but the sw hangs at exactly 1000 message.
ReplyDelete"generic error: system.nullreferenceexception: nullreferenceexception location: sms2ipd_vb.form1.mnustart_click(object sender, eventargs e) lovations: system.windows.forms.menuitem.onclick(eventarges e)..."
Thanks for your feedback. For me to to fix the error, let me know the exact text display on the screen as well as the exact error messages when the application hangs.
ReplyDeleteI have updated the installer and the source code to fix a potential issue. Please try again and let me know the results.
ReplyDeleteThanks :)
I am looking for a solution to import my old Nokia SMS into my new BB9700. Is there any way to do this? NBU Converter from Amber failed. It has "Messages" instead of "SMS Messages" in the ipd header and the BB Desktop doesnt recognize the file.
ReplyDeleteHi, I believe it's possible to use a hex editor to edit the IPD file and change the header to what Desktop Manager expects. The IPD file is not encrypted, nor is there a checksum to verify its integrity. As long as you change reasonably, it should work.
ReplyDeleteYou can also use Nokia PC Suite to export all SMS to a CSV file. Send me a sample and I will help to write a tool to convert the CSV file to an IPD file readable by desktop manager.
Where can I find your Email-Adress? My Email is tyrant(at)gmx.de
ReplyDeleteHelp
ReplyDeleteI'm geting this error when i try to run the SMS2IPD
I'm running WM5 and have updated the .NET to v2.0
file or assembly name 'system.windows.forums' version=3.5.0.0, culture=neutral,publickeytoken=969DB8053D3322AC,or one of its dependencies, was not found.
Hi. The application requires .NET CF 3.5. Please install it, reboot the device and try again.
ReplyDeleteHelp,i am getting the following error,
ReplyDeleteAn Unexpected error has occured in sms2ipd_vb.exe
message text unavailable. Resource file 'microsoft.visualbasic resources' not found
nice work!
ReplyDeleteBrilliant work! Thank you very much and God bless!
ReplyDeletei currently use a windows mobile device. my inbox has subfolders. can this program also transfer my subfolders and all their contents to a blackberry device? thanks for any feedback!
ReplyDeleteHi. I don't think it supports exporting sub-folders since the IPD format that I use does not support sub-folders. But feel free to try and let me know. You can always move all messages to the top-folder before exporting to IPD file.
ReplyDeletecould you modify it to support subfolders? :) just a thought.
ReplyDeletein any case, thank you so much for this program! will try it out later and will let you know if it works with subfolders.
Hi. I could read the sub-folders on Windows Mobile but there's no way I know of to embed the sub-folders in the Blackberry IPD file. So the IPD file will contain all messages found (in different folders) on Windows Mobile phone in a single Blackberry SMS Inbox folder. I may work on this in the future when my time allows. :)
ReplyDeleteHi, fantastic - I have thousands of messages salvaged! One problem is that Chinese characters became ??? after the export & import process. I do not know where did it go wrong. Any solution? Cheers!
ReplyDeleteHi KSW, thank you for trying the app. The issue with Chinese characters (and other Unicode characters) is a known problem as I have not yet figured out how to generate an IPD file with Unicode SMS properly. I will resume work on Unicode support in the future when my time allows.
ReplyDeleteHey MD, I would like to say thank you! This is exact something which i am looking for.. i have searched each page of google, wastn't able to find a tool, untile get here.... Really thanks for sharing..
ReplyDeleteRohan
This is a fantastic tool! I managed to transfer all my smses from Windows to my new BlackBerry. You mentioned MagicBerry could be used to edit SMSes. I've tried exporting my smses to .ipd and opening it with MagicBerry but could not find a way to edit my smses except to export it to .csv but from .csv, I do not know how to upload it back to my BlackBerry. Could you help/advise?
ReplyDeleteHi, glad you find the tool useful. As mentioned in the article, MagicBerry can read IPD file and export selected or all entries to CSV. It can also merge selected entries (SMS, contacts) from 2 IPD files into a single file. As far as I know it is not capable of editing IPD file beyond this.
ReplyDeleteHi MD, I face the following error when using the app.
ReplyDeleteError:
Generic Error:
System.Exception:
pIMAPIContainerOpenEntry failed: MAP_E_CALL_FAILED at MAPIdotnet.cemapi.MAPIContainer.OpenEntryAsNessage(Byte[]entryID) ...... (its a really long error code)
Any suggestions?
Rgds,
NB
Hi NB, may I know which phone model you are using? The application supports Windows Mobile 5 and above only. .NET CF 2.0 or 3.5 is required (which I think you already have). Windows Mobile 2003 is not supported. If you try to run, you may get a similar error message.
ReplyDeleteSome phone models/firmwares have been known to use a custom SMS/MMS software, and not the one provided by Microsoft. SMS2IPD will not work in these phones.
Some other devices by default will prevent applications from reading the SMS/MMS database. You will need to change the device security settings for the application to work. If you are using Visual Studio 2008 with Windows Mobile SDK, try Tools>Device Security Manager and turn off the security settings. If you don't have VS2008, search Google and try to find some CAB files to do the same.
hi MD, had you figure how to convert SMS with chinese characters to blackberry? Or is there a walkaround for that?
ReplyDeleteHi, unfortunately I have not yet found the time to fix this program to support Unicode, including Chinese characters. You may want to try my other similar tool, CSV2IPD, http://minhdanh2002.blogspot.com/2010/10/restoring-sms-backup-from-csv-to.html, which have some simple support for Unicode.
ReplyDeleteDo you recommend a program that can do the opposite? That is transfer sms from .ipd onto Windows Mobile?
ReplyDeleteHi. It's possible to migrate SMS from BB to WM by following the following steps:
ReplyDelete1. Use Blackberry Desktop Manager to export all SMSes on BB onto an IPD file.
2. Use MagicBerry (http://code.google.com/p/magicberry/) to extract the IPD file to a CSV file.
3. Find an app on WM that can import SMS backup from CSV file. There is the challenge of finding the correct tool and manipulating the CSV file to get it accepted by the tool. I think this can be done with some efforts - there are plenty of SMS backup/restore tool for Windows Mobile and some advanced text editors can handle CSV file quite well.
I myself wrote a few apps that can read in a CSV file exported from MagicBerry and import the SMSes to Windows Mobile, but due to time constraints, I never packaged these apps for public release.
Recommend any program to convert .ipd to .csm?
ReplyDeleteI am not sure. You can use MagicBerry to export the IPD to CSV, then write your own converter (provided that the file format is known) :)
ReplyDeletei couldnt make it work om my wm6.5 htc maple program says unexpexted error and it quit
ReplyDeleteHi, can you give me the exact error message? Thanks for trying the tool :)
ReplyDeleteit says,
ReplyDeletean unexpected error has occurred in sms2ipd_vb.exe
select quit and then restart the program or select detail for more information.
message text unavailable.resource the file microsoft.visualbasic resources not found.
and when i hit detail error it says,
sms2ipd_vb.exe
invalid operation exception
message text unavailable.resource the file microsoft.visualbasic resources not found.
at sms2ipdvb.myproject.myforms.create_instance_(T)(form1 instance)
at
at sms2ipdvb.myproject.myforms.get_forms1() at sm2ipd_vb.form1.main()
any help would be greatly appreciable thanks.
Hi. Thanks for the info. The application requires .NET Compact Framework 3.5
ReplyDeleteThe .NET framework on your device may not be up-to-date. Please install the latest version, reboot the device and try again.
can you make a youtube video. I think you would get large amount of views, because there are thousand of people out there looking for this info and a video would be ideal to grasp the concepts quickly.
ReplyDeletewhen I unzipped the file I get 7 files with extensions _setup.xml, SMS2IP~1.000, 0MAPIlib.001, MAPIDO~1.002, 00footer.003, 00header.004, SMS2IP~1.005
ReplyDeleteI don't get any .exe or .cab files to run on my phone I have already installed .NET Compact Framework 3.5 on my phone and rebooted it, and now I am stuck
I tried to use HJ-Split to join the files but all it did was change 0MAPIlib.001 to 0MAPIlib I am completely lost on this now please help.
ReplyDeleteJ.Bond
Hi, thanks for trying. The CAB file you downloaded from this article is supposed to be run on the Windows Mobile device, not to be extracted on your computer. Run it and install the SMS2IPD tool on your device and follow the instruction in this article. Let me know if you manage to get it working.
ReplyDeleteI will try to make a youtube video when I have the time too.
i have already switched phones, where is the location I should drag and drop the files into. Ive tried the file manager folder and the program files folder but no luck
ReplyDeleteJ.Bond
my old phone is unable to log onto the internet and download any applications
ReplyDeleteHi, are you familiar with installing app on Windows Mobile phone? The SMS2IPD.CAB you download is just an installer for the tool. You will need to copy the SMS2IPD.CAB to your device, either by copying to a memory card and put in in your device, or use ActiveSync to copy it to the device. Then, on the device file explorer, click on the CAB file to install and run the tool.
ReplyDeleteBingo. A true Genius you are. Great Job.
ReplyDeleteI wonder why BB or Microsoft can't bundle this.
but you are great.
It helped me transfer my WM to BB.
thank you.
Samir.
Samir, glad it helped you. Cheers :)
ReplyDeletehi MD,
ReplyDeleteI have the same Invalid Operation Exception
problem as told before by others. Is there any solution for that error? I'd like to transfer text messages from a htc rose (wm 6.1) to a bb torch.
thank you,
edina
Hi edina,
ReplyDeleteThanks for trying the app. The invalid Operation Exception is a known problem when running on some phones. I will try to fix it and update the link within the next few days :)