Guest Abhi.2k7 Posted June 8, 2007 Report Posted June 8, 2007 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 June 8, 2007 Report Posted June 8, 2007 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?
Guest Abhi.2k7 Posted June 28, 2007 Report Posted June 28, 2007 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.
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now