Edit: Changed JellyBean to cyanogenmod 10 as it's probably a cyanogen feature
I noticed my phone under CyanogenMod10 phone displays in the call log the (approximate) location of callers (only when the number is a land line phone not in my contacts).
It doesn't just rely on the country code because it also displays the city of the caller when found. I browsed the Contacts package app and found values was fetched from database (in com.android.contacts.CallDetailActivity)
final String countryIso = callCursor.getString(COUNTRY_ISO_COLUMN_INDEX);
final String geocode = callCursor.getString(GEOCODED_LOCATION_COLUMN_INDEX);
So I though it was in the Phone package app after successfully placing or receiving a call. But I quickly lost myself in the source... I would to know where and (briefly) how those values are set and the geocode resolved.
Are phone numbers sent to a mysterious web service?
Does Cyanogen have a table with all country codes and city prefixes of the world (I doubt it)?
Or is that DB downloaded depending on the country you are in?