The SIM Card just contains the IMSI, International mobile Subsciber Identity.
Whenever you make a call, you are passing the IMSI to the center where your phone number is saved.
I think (I'm not sure) by implementing the getSubscriptionId() method of javax.telephony.mobile.MobileAddress interface you can catch the IMSI!