Jump to content


Photo

Trying to read SIM voicemail access number from SIM Card

- - - - -

  • Please log in to reply
2 replies to this topic

#1
Abhi.2k7

Abhi.2k7

    Newbie

  • Members
  • Pip
  • 4 posts
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

#2
Abhi.2k7

Abhi.2k7

    Newbie

  • Members
  • Pip
  • 4 posts
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

#3
Abhi.2k7

Abhi.2k7

    Newbie

  • Members
  • Pip
  • 4 posts

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




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users