When I purchased my smartphone I placed all of my contacts from my previous phone on my SIM card, then I just moved the SIM card to my new smartphone and all my contacts were there. But, they were all there on my SIM card under a SIM contact. This is not ideal for the smartphone. With the smartphone you would like to be able to sync up the contacts with Outlook on your PC, or to have additional functionality that goes with the Outlook contact in the phone (images, custom rings, etc). One feature that you can not use with SIM contacts is if you have a huge phone list the phone provides a “quick search” where it shows you the letter and then hops to that letter in your phone book without going through all your contacts. But, with the SIM contact it does not do any of that. So, the obvious thing is to move your SIM contacts to your Outlook contacts in bulk. There is a program out there that I used, M2SIMCopy, that does a good job in moving over the contact to the phone, but it puts them in a category “SIM” and is only one way directional. By this I mean it can only go from SIM to the phone and not the phone to the SIM. So, I decided to take a stab at it. I decided to use the Compact Framework 2.0 with Windows Mobile 5.0 and Visual Studio 2005. I found one library somewhat useful to start with the SIM functions. The SIM method I needed was SimWritePhonebookEntry in the cellcore.dll. This method is not wrapped in the .NET CF 2.o, so you would have to use PInvoke to try to get at it. The method returns a reference to a structure and you would have to try to mimic that structure in .NET, which is not a straight conversion. I looked a while for something on the internet, and found the OpenNETCF library does a pretty good job on encapsulating the SIM calls into .NET methods.
If you need the .NET Compact Framework 2.0 you can download it here.
I finally had time to dig around in the OpennetCF and get it to work with adding my Outlook contacts in bulk to my SIM card, and then back from my SIM card to my Outlook Contacts in bulk. I had to tweak one method in the Opennetcf to get it to work.
The first screen is a little slow when loading the contacts, so when you click one of the menu items to bring up the contacts it will take about 3 seconds to bring up the screen with the contacts on it.
When installing it will prompt you with a screen that asks you to Confirm the installation. Something along the lines of “The program is from an unknown publisher, Do you want to continue?” Select “Yes”. Then the program will install.
I put a shortcut under the start menu called “BRobinson Contact Manager” and you can launch the application from there. Or you can navigate in your smartphone to Program Files -> ContactManager and then click on the executable to launch the program. Now you can copy all your Outlook contacts to your SIM card!
Here are some screen shots:
Version 1.0

UPDATE: The program now has a new version (1.1) that can export your SIM or Outlook contacts to a pipe “|” delimited text file. You can also import this file to either your SIM or Outlook contacts. Also, when exporting from Outlook it will put an “H” for home number, “B” for business number and “M” for mobile. See new pictures:
Version 1.1 (in addition to 1.0 features)

Download the installation cab file here (version 1.1): Installation File [ 3079 Downloads ]
old version here (version 1.0): Contact Manager 1.0
#1 by Bill at July 23rd, 2006
Hi there,
I checked out your program - it’s something that I’ve been looking around for quite a while - Thanks for putting it together. I’m running an ipaq 63xx series, which runs WM2003 Phone Edition.
I loaded your program, and found it would show my sim card contacts (the ones I originally had in my last phone, but wouldn’t show my contacts on my phone - it gave an error - i’m assuming it’s because of my OS… any ideas?
Thanking you in-advance,
Bill
#2 by Brett Robinson at August 1st, 2006
I didn’t test the application running with WM2003, so I’m not sure if it will or will not work. I’m assuming if you have .net compact framework 2.0, then it should work. I’m not sure on the outlook versions either and how the program will react to older versions of pocket outlook than the one on the SDA.
#3 by Brad at August 3rd, 2006
Hello!
I checked out your program, thanks. I had issues where my contacts grew from 94 to 504 (lots were blank fields). I discovered a problem with you application. If you try to delete more than one contact (from outlook mobile) at a time the program will error out. Needless to say, I still continued - everything else worked flawlessly however.
I would be quite interested in seeing your source code if you have no problems with that, as I would like to see how the conversion to sim works. My guess is: Due to the nature (limited) of how the sim card stores names and numbers, It can probably be imported from a CSV file. If that is the case I’d like to make (myself) an application that does just that (e.g. One could export contacts from Outlook (desktop) to a DOS CSV file and then load that to the phone and import the contacts that way.
Thanks again for your application, I found it very useful.
#4 by Attilio Gelosa at September 8th, 2006
Hy Brett,
I try to use your app on my i-mate K-Jam, but it say it needs a more recent version of the .Net Compact Framework, but I have the 2.0…
Thank you,
Attilio
#5 by Brett Robinson at September 8th, 2006
Hi Attilio-
Not sure if this will do it for you, but I found a blog describing the problem you’re having along with a solution:
http://csharponphone.blogspot.com/2006/06/installation-error-support-info-4.html
Hope that helps!
Brett
#6 by Attilio Gelosa at September 14th, 2006
Hy Brett,
thank you for your suggestion… now the app starts, but I found a little problem. When I try to. Wiev SIM contact ->Select All -> Copy to Phone, I recive a NullReferenceException in Contact_Manager.SIM_Manager.moveTpPhone_Click()
Thank you again.
Attilio
#7 by Frederik at September 20th, 2006
Brett,
I downloaded the installation file, but when installing it seems to be missing the .exe file
What gives?
Frederik
#8 by Brett Robinson at September 20th, 2006
The zip file contains two (2) files. “ContactManagerInstall.CAB” and “ContactManagerInstall.inf”. Open ActiveSync and click the “Explore” button. This will open up your smartphone file system. In your phone file system, pick a folder and drop these two files in the folder on your smartphone (I used the “\Storage Card\My Documents\” folder). Then after a sync, navigate to foler and execute the CAB file on your smartphone and that will kick off the install. That works for me everytime!
#9 by Attilio Gelosa at September 22nd, 2006
Hy Brett,
perhaps I’m asking to much, but… can you post here the code for writing to Sim Card?
Thank you,
attilio
#10 by Brett Robinson at September 22nd, 2006
Sure -
private OpenNETCF.Phone.Sim.Phonebook phoneBook;
OpenNETCF.Phone.Sim.Sim phoneSim = new OpenNETCF.Phone.Sim.Sim();
phoneBook = phoneSim.Phonebook;
OpenNETCF.Phone.Sim.PhonebookEntry entry = new OpenNETCF.Phone.Sim.PhonebookEntry();
entry.AddressType = OpenNETCF.Phone.AddressType.Unknown;
entry.Plan = OpenNETCF.Phone.Sim.NumberPlan.Telephone;
entry.Flags = PhonebookEntry.PhonebookEntryFlags.Plan | PhonebookEntry.PhonebookEntryFlags.AddressType | PhonebookEntry.PhonebookEntryFlags.Address | PhonebookEntry.PhonebookEntryFlags.Text;
entry.Text = “some text here”;
IList phoneList = phoneBook;
if (phoneBook.Count < phoneBook.Capacity)
{
phoneList.Add(entry);
}
#11 by jonni at October 8th, 2006
Hi,
I am a total novice at this, but I was able to install both the 2.0 net framework and the contact manager. (thanks for creating the program it is certainly needed with this operating system).
However, when I try to copy my sim contacts to outlook contacts I get this super long nullreference error? Could it be because I installed the programs to my SD card to save space? Or, is it something else?
Another thing, could anyone recommend a good - preferably free reader for SDA (I cannot believe it doesn’t come with one. There are so few programs for the smart phone, it doesn’t make any sense)
#12 by Pat Buchanan at April 30th, 2007
Brett, great little app. My kind of stuff…sweet and simple.
Fit the bill perfectly.
#13 by versek at May 16th, 2007
Hello, my name is carlos and I develop a application that work whit the sim of the pda. The SO is Windows Mobile 2003 Phone Edition.
I try to insert one contact in the sim but the next method don’t work. The metode don’t return any exception, but don’t insert the contact in the sim. I debbuging the application and I have seen that phonebookEntry.Text and phonebookEntry.Address remains target (phonebookEntry.Text = “”).
I don’t know because this happens, I hope that somebody can say to me since it becomes.
[code]
Private Sub miAfegirContacteSim_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles miAfegirContacteSim.Click
Try
Dim sim2 As OpenNETCF.Phone.Sim.Sim = New OpenNETCF.Phone.Sim.Sim
Dim phonebook As OpenNETCF.Phone.Sim.Phonebook = sim2.Phonebook
Dim phonebookEntry As New OpenNETCF.Phone.Sim.PhonebookEntry
phonebookEntry.AddressType = OpenNETCF.Phone.AddressType.International
phonebookEntry.Plan = OpenNETCF.Phone.Sim.NumberPlan.Telephone
phonebookEntry.Text = “Carles”
phonebookEntry.Address = “937979797″
If (phonebook.Count
#14 by Doraiswamy at October 5th, 2007
Sorry to add to the tons of useless bits floating around in cyberspace but I felt compelled to thank you for this App. I have an i-mate K-jam that I am getting rid of and I had the unenviable task of moving all my contacts to my new phone. Thanks to this app, that was a snap. Sometimes I cannot understand why you would spend hours cooking up something like this and then just give it away but I am not complaining. Thanks again!
#15 by Per-Fredrik at February 20th, 2009
Excellent, keep up the great work! I successfully transfered SIM contacts from a SonyEricsson to a HTC touch HD! Works like a charm. This utiliy enabled me to reformat the entries which otherwise doesn’t work if one only copy from SIM! Cheers!
#16 by Adeel Khan at May 24th, 2009
Thank you sir. Thank you twice!
#17 by Deepanshu at June 29th, 2009
Hey Brett,
This application works absolutely well on my Asus Smartphone…Thanks a bunch!!!
Deepanshu
#18 by Chris at August 8th, 2009
Thanks Brett, saved me a ton of time, enjoy the beer.
Chris
#19 by Niraj at August 29th, 2009
Hey Brett,
I was trying to copy my contacts from BB8310 to SIM. I am a complete newbee so can you please explain to me in detail how I can do that with your software. I tried to download your zip file but didn’t see any *.CAB file in the extract. The only *.exe file that I say was contat~1file.
Thanks for your help
#20 by Gilles at October 6th, 2009
Hello. I’ve been trying to access Sim card info with java and VB. I’d be very interrested at looking at your source if you allow it. Particularly which opennetcf library you sed, as I found a few when researching.
I would be most grateful if you would post or mail more source.
#21 by Walk at November 3rd, 2009
Works great on an Acer X960 (Windows Mobile 6.1)! Thanks! The import/export textfile option is really a must
#22 by Phil at January 27th, 2010
Thanks for the great program! Just downloaded and installed, very smooth install and run. Im running a Samsung i907 Epix. It almost seemed too easy…
Let me tell you, this is something Ive been searching for: A way to get my SIM Contacts to sync with outlook. Thanks!!
#23 by dathanas at February 18th, 2010
Thanks for the great programm. It worked very well, the only thing is that when i tried to export my contacts to a txt file i also got this error message for NullReferenceException . Any idea why i get this message and what can i do to fix it? Thanks
#24 by MixedMinds at July 3rd, 2010
Thank you, although I get the NullReferenceException error too, but it copied almost all my contacts. It help a lots.