How to get iPhone Caller ID, Numbers Display & Location/Operator info Show Correctly

Status
Not open for further replies.

raul

Contributor
Hi Guys,

I have been trying to get phone numbers displaying properly and have made some progress.

To recap I am on 114 unlocked with iPlus 2.0. This has Appsupport built in the international payload, ziphone has it too I think. Incase you are not getting caller id to work properly get iclarified in your sources list and install 114 /113 fix. Then in 'General-Settings-International-Region Format' select 'India'. This should get your caller ID working perfectly.

There a number of things here so don't get confused.

1. All numbers in your contacts list should match ie landline number 12345678 should be the same person whether its 020 12345679 or +91 20 12345678 for landlines and 912345678 should be the same person for +91 912345678 or 0 912345678. If you have Appsupport installed properly this should work by default.

2. This is what I needed and have been messing around with.

a. First dialing a typical landline number 020 12345678 was showing like this on screen 02012345678 ie without the gap. Till the 10th digit it was ok its 020 1234567 but the moment you type the last digit it would become one number 02012345678 without the gap after the std code. FIXED

b. Dialing mobile numbers with 0 first was displaying like (091) 2345678. I wanted it to be 0 912345678. FIXED

c. When you receive a call from a landline the number displays as +91 2012345678. I wanted this to display as +91 20 12345678. FIXED

You need to edit the UIPhoneFormat.plist located in /System/Library/Frameworks/UIKit.framework/PhoneFormats/

I have actually added a lit bit of data which you can too.

This is the original entry for India in this file:

<key>in</key>

<array>

<string>(0##) #######</string>

<string>00 $</string>

<string>+91 ##########</string>

</array>

This is my version for proper display. File attached also. See link below.

<key>in</key>

<array>

<string>(0##) ########</string>

<string>0 9#########</string>

<string>00 $</string>

<string>+91 9#########</string>

<string>+91 ## ########</string>

</array>

3. iPhone has a feature in the US where when you receive a call from an unknown number it shows the location of the call ie it will display Palo Alto if you get a call from a Palo Alto number. The good news is you can get this working in India too thanks to Tim the author of Appsupport. So if you get a call from some god forsaken place the phone will show you the name of the place and if its a mobile number it will also show you location and network too. Cool, na.

Unfortunately India is a huge country and the database for India is 390kB, that might not sound like a lot but its huge, all town, cities, std codes, mobile operator codes and numbers by location. Once you convert this sql file to db its around 216kb and you put it in /System/Library/Frameworks/AppSupport.framework/Support/ folder and restart your phone and anytime you get a call from an unknown number it will display the location for landlines and location & mobile operator for mobile numbers.

I just needed the major cities so I modified the sql file (who will call me from some village in Rajasthan) and reduced it to 90 kb and the resulting callinfo.db file to 50kb.

If you want everything, just use the callinfo.db file in the attached zip file and place it here:

/System/Library/Frameworks/AppSupport.framework/Support/

If you want to customise it to your needs edit the callinfo_india.sql file in the attached zip and convert it to callinfo.db file and place it in your phone in the location mentioned above. To understand how to do that read the readme.txt in the attached zip archive. To convert to db you need to use sqlite, a 200 kb command line util. Get it here:

http://www.sqlite.org/sqlite-3_5_7.zip

I have attached the full India sql file and the resulting callinfo.db for those who want to use all the info. (Also attached UIPhoneformat.plist for those who would like to replace the file rather than edit) Here's the link:

iPhoneIndia.zip

All files sourced from Tim's page Apple iPhone

Contents of Zip Archive

1. callinfo.db

2. callinfo_india.sql

3. UIPhoneFormat.plist

4. Readme.txt ( From Tim's callinfo database Build 1)

This is the work of Tim who has been working hard on Appsupport for all countries which is phenomenal considering how complicated things can get just for a single country like India. Please consider donating to him if possible. The India sql db file is downloaded from his site here: http://users.skynet.be/ra045246/callinfo_india.sql.

I think one of the posters from India on Hackint0sh made this database for India, though I am not sure. Its a huge 115 page thread and I have a faint recollection of someone uploading a India database to Tim. Having said that I downloaded the database from Tim's site so if some one else has made it and is on techenclave please feel free to clarify. Ps: There are some new codes for Airtel Mumbai that are not on the db, for instance 99676.

Cheers.
 
  • Like
Reactions: 3 people
Yup, its quite cool. I just dial a mobile number and I can tell which location and network it is.

And getting the numbers to display properly is nice. Only thing is I can't figure out how to get 4/5 digit STD codes to show properly. 3 digit codes 020, 022, 080 will display correctly, but 4/5 digit codes ie 0542 / 04936 will not.

Maybe someone can figure this out, I am sure its possible.
 
AppSupport Patch is available for 1.1.2, 1.1.3 even 1.1.4 so no needed to make such things...
 
Rahul, even with Appsupport patched you won't get number display and callinfo.db working properly.

For instance if you call a mobile number say in lets say Bombay does your iPhone show the call is going to Airtel Mumbai/Idea Mumbai/Vodpahone Mumbai? Or if receive a call from someone does it show the location and network of where the call is coming from ie Vodaphone, Bangalore/ Airtel Chennai. That what callinfo.db does. If you call a landline in lets say Hyderabad or receive a call from Chennai it will show you that location info.

Also for me inspite of Appsupport patched, number display ie 022 26631296, +91 22 26631296 or 0 9860500000 with the gaps in the right places was not working properly hence the edits to UIPhoneFormat.plist
 
^Use WinSCP to connect to the iPhone via wifi. You need to make sure you got the BSD Subsystem and SSH installed on the iPhone before you do that.
 
CONFUSED HERE! please explain me, i am on the way

1. All numbers in your contacts list should match ie landline number 12345678 should be the same person whether its 020 12345679 or +91 20 12345678 for landlines and 912345678 should be the same person for +91 912345678 or 0 912345678. If you have Appsupport installed properly this should work by default.

2. This is what I needed and have been messing around with.

a. First dialing a typical landline number 020 12345678 was showing like this on screen 02012345678 ie without the gap. Till the 10th digit it was ok its 020 1234567 but the moment you type the last digit it would become one number 02012345678 without the gap after the std code. FIXED

b. Dialing mobile numbers with 0 first was displaying like (091) 2345678. I wanted it to be 0 912345678. FIXED

c. When you receive a call from a landline the number displays as +91 2012345678. I wanted this to display as +91 20 12345678. FIXED

You need to edit the UIPhoneFormat.plist located in /System/Library/Frameworks/UIKit.framework/PhoneFormats/

I have actually added a lit bit of data which you can too.

This is the original entry for India in this file:

<key>in</key>

<array>

<string>(0##) #######</string>

<string>00 $</string>

<string>+91 ##########</string>

</array>

This is my version for proper display. File attached also. See link below.

<key>in</key>

<array>

<string>(0##) ########</string>

<string>0 9#########</string>

<string>00 $</string>

<string>+91 9#########</string>

<string>+91 ## ########</string>

</array>
 
Nice info there. Had an iPhone with me for unlocking for 2 days and now I want one too. This info is going to come in handy when I manage to get one. Thanks.
 
btw.. u could add only 91 thing.. it is not their i think!

Hey.. one thing, whats the use of these State, Town, names??
 
Hey the thing is this can be confusing and that's why I asked right in the beginning of the tutorial to not get confused. Maybe I could have written it better.

We are all used to Nokia in India so the number display thing is something that is new to us. In iPhone, dial a US number, it will be like this '+1 605 8289-1234' with spaces and dashes at appropriate places. In Nokia it will be '+160582891234' without the formatting. Its not a big deal but makes a difference. Since iPhone is not supported for India the India format is not there. Tim has modified AppSupport to include some bit of it for India, I just added a few strings to make it more accurate.

So whenever you dial or receive a call, the number will display in this format with spaces. so if you receive a call from a landline instead of '+912223456789' it will display as '+91 22 23456789'. For cell it will be '+91 9812345678'.

In US iPhone if you receive a call you get the location info, it it will show the name of the place you are dialing or from where you are receiving a call. Again this is not there in India and the AppSupport guy has modified AppSupport with the capability but it is not installed by default.

That's where the callinfo.db and the callinfo_India sql file come in. The callinfo_India.sql file is a database of all India STD codes and mobile operator numbers. Just place the callinfo.db file in the mentioned folder and voila, you will start getting location and mobile operator info for calls coming in to iPhone or going out. But this only works for numbers that are not in your contacts.

Rahul PM me if you are still confused and I will put up a couple of screenshots.

To actually move files to your iPhone you need to install Winscp and connect via wifi to the iPhone filesystem. Winscp is like windows explorer over wifi that allows you to browse your iPhone's filesystem. Here's a useful guide:
Windows Guide To Using WinSCP With iPhone
 
Thanks Edrill, I find this quite useful to have. I have been a hardcore Nokia person since 6600 right till N95, iPhone is not as feature packed but then using it there this little touches that make it so much more interesting to use. Must make a list of them.
 
Status
Not open for further replies.