Jump to content

Trying to read SIM voicemail access number from SIM Card


Recommended Posts

Guest Abhi.2k7
Posted

Hi guys,

I am currently trying to read the voicemail access number (dialing) number off the SIM. The addresses that I've already tried to read are: 0x6FC7 (Mailbox dialing numbers), 0x6FC9 (Mailbox identifier), 0x6FC8 (Extension data for Mailbox dialing number), 0x6F17 (Dialing numbers to use for retrieval from mailboxes). Every time I am returned with a SimReadRecord failed (following a debug statement) and it is reading some random data. The return value of SimReadRecord is 0x80007057. I read a few other forum posts and I guess this error means that one of my parameters is invalid. But I don't know what I'm passing wrong. I'm trying all the possible record types too.

dwBufferSize = sizeof(dwBufferSize );

memset(rSIMResponse.read_ef.data, 0, sizeof(rSIMResponse.read_ef.data));

dwBytesRead = 0;

hr = SimReadRecord( hSIM, address, dwRecordType, dwIndex, (LPBYTE)dataBuffer, dwBufferSize, &dwBytesRead);

Does anyone have any suggestions?

Thanks a lot!.

Guest Abhi.2k7
Posted

I tried to get the mailbox number again and the error code I get is 0x80004005. Also, since I am reading an actual file, I don't think SimGetRecordInfo() will be the right choice. Any ideas guys?

  • 3 weeks later...
Guest Abhi.2k7
Posted
Hi guys,

I am currently trying to read the voicemail access number (dialing) number off the SIM. The addresses that I've already tried to read are: 0x6FC7 (Mailbox dialing numbers), 0x6FC9 (Mailbox identifier), 0x6FC8 (Extension data for Mailbox dialing number), 0x6F17 (Dialing numbers to use for retrieval from mailboxes). Every time I am returned with a SimReadRecord failed (following a debug statement) and it is reading some random data. The return value of SimReadRecord is 0x80007057. I read a few other forum posts and I guess this error means that one of my parameters is invalid. But I don't know what I'm passing wrong. I'm trying all the possible record types too.

dwBufferSize = sizeof(dwBufferSize );

memset(rSIMResponse.read_ef.data, 0, sizeof(rSIMResponse.read_ef.data));

dwBytesRead = 0;

hr = SimReadRecord( hSIM, address, dwRecordType, dwIndex, (LPBYTE)dataBuffer, dwBufferSize, &dwBytesRead);

Does anyone have any suggestions?

Thanks a lot!.

Got it working. I ready entry 0x6f17. Some European SIM's can also have extension numbers. You would have to read the 3GPP 11.11 documentation for that (Section 10.5.5 onwards) to see how the records are structured. Also, I was passing an incorrect record type. First, you should get the record info (GetRecordInfo) and then with the information from there (about the SIM file), you can get the correct SIM record type to actually read the file. Decoding the address in the correct format is a little tricky though.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.