Sign in to follow this  
Followers 0
Abhi.2k7

Trying to read SIM voicemail access number from SIM Card

3 posts in this topic

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!.

0

Share this post


Link to post
Share on other sites

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?

0

Share this post


Link to post
Share on other sites
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.

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

MoDaCo is part of the MoDaCo.network, © Paul O'Brien 2002-2016. MoDaCo uses IntelliTxt technology.