-- references: -- https://developer.android.com/reference/android/provider/CallLog.Calls.html -- https://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.Phone -- -- -- Costas Katsavounidis © 06/2019 SELECT calls._id, number, --The phone number as the user entered it. case presentation when 1 then 'allowed' --Number is allowed to display for caller id when 2 then 'restricted' --Number is blocked by user when 3 then 'unknown' --Number is not specified or unknown by network when 4 then 'pay phone' --Number is a pay phone else presentation end as 'CallerID', case calls.new -- Whether or not the call has been acknowledged when 1 then 'yes' else '' end as 'New', case type when 1 then 'incoming' --incoming calls when 2 then 'outgoing' --outgoing calls when 3 then 'missed' --missed calls when 4 then 'voicemail' --Call log type for voicemails when 5 then 'rejected' --rejected by direct user action when 6 then 'blocked' --calls blocked automatically when 7 then 'answered externally' --call which was answered on another device else type end as 'type', -- ISREAD >> Unlike the NEW field, which requires the user to have acknowledged the existence of the entry, -- this implies the user has interacted with the entry. case is_read -- Whether this item has been read or otherwise consumed by the user. when 1 then 'yes' else '' end as 'is read', case features when 0 then 'None' when 1 then 'Call had Video' when 2 then 'Call was pulled externally' when 4 then 'HD Call' when 8 then 'Call was WIFI call' when 32 then 'Call was on RTT at some point' else features end as 'features', operator||' ('||countryiso||')' as 'Operator', geocoded_location, --The string represents a city, state, or country associated with the number associated with this call matched_number, case numbertype --cached number type (Home, Work, etc) associated with the phone number when 1 then 'Home' when 2 then 'Mobile' when 3 then 'Work' when 4 then 'Fax_Work' when 5 then 'Fax_Home' when 6 then 'Pager' when 7 then 'Other' when 8 then 'Callback' when 9 then 'Car' when 10 then 'Company_Main' when 11 then 'ISDN' when 12 then 'Main' when 13 then 'Other_Fax' when 14 then 'Radio' when 15 then 'Telex' when 16 then 'TTY_TDD' when 17 then 'Work_Mobile' when 18 then 'Work_Pager' when 19 then 'Assistant' when 20 then 'MMS' else numbertype end as 'numbertype', formatted_number, post_dial_digits, --post-dial portion of a dialed number name, time(duration,'unixepoch') as 'duration', --The duration of the call in seconds datetime(date/1000, 'unixepoch','localtime') as 'call_date', --The date the call occured, in milliseconds since the epoch datetime(last_modified/1000, 'unixepoch','localtime') as 'lastmodified',--The date the row is last inserted, updated, or marked as deleted, in milliseconds since the epoch photo_id, photo_uri, via_number, -- the via number indicates which of the numbers associated with the SIM was called phone_account_address, --The identifier for the account used to place or receive the call subscription_id as 'sid', --The identifier for the account used to place or receive the call, case phone_account_hidden when 0 then 'No' when 1 then 'Yes' end as 'hidden', subscription_component_name as 'component', calls._data as 'data', case has_content when 1 then 'Yes' end as 'has content', data_usage, source_package, transcription, --only be populated for call log entries of type VOICEMAIL_TYPE that have valid transcriptions mime_type, case dirty when 1 then 'yes' end as 'dirty', case deleted when 0 then 'no' when 1 then 'yes' end as 'deleted' from calls order by calls._id desc