Your favorite Apple, iPhone, iPad, iOS, Jailbreak, and Cydia site.
11-07-2007, 10:38 AM #1Is it possible to increase Call history count?
So looking more into this phone noticed that all of your recent calls are stored in the call_history.db file. That file is a SQLite file which you can easily open. I noticed there are a few parameters in there and one is call history limit which is set to 100, which means its holding 100 of your most recent calls. I tried to change to say 500, but it still only holds the last 100. In that DB file also is the list of calls you made to who, what time, duration (which seems to round upto nearest minute). It also tracks your data usage and stuff, basically what you see on your Usage screen.
So wondering if anyone has sucessfully increased the call history count, I also tried to add a few blank rows to that table thinking maybe it allocated 100 rows and only works there, but that didnt work either.
11-07-2007, 03:16 PM #2
Did you try backing up the files and deleting the one that had the calls in it, changing the value to 500 and rebooting your phone?8GB 3G iPhone
- Universal-Sim 5.5 Unlock
- 2.1 Pwned with Pwnage Tool
11-08-2007, 09:44 AM #3
11-11-2007, 11:50 PM #4
So got tired of waiting for a 100calls to happen ended up quickly just generating that many and seems like even with that property changed to 500, the actual call list table only seems to only 100 of the last calls, no matter what that property value is set in the first table. Just seems to FIFO the calls in the last 100.
11-12-2007, 01:17 AM #5
Hmmm, maybe a little more tweaking is needed. I wish I knew how to help...
12-11-2007, 01:26 AM #6
Gosh really wish it were possible to make the call history unlimited, that would really help me for one.
Is there any tweak that could be done for this? Thanks.
12-11-2007, 02:21 AM #7
12-11-2007, 09:26 AM #8
For those who want to test unlimited size of last call list, use attached file.
After unzipping replace /var/root/Library/CallHistory/call_history.db with the new one.
I recommend to keep a copy of the old one just to be safe.
Please note it will erase all your current history.
Reboot your iPhone to start the trigger.
Please note that it may slow down the "last calls" screen, depending on how big your list will be.
So far mine works fine, with 3000 records.
Remember that I take no responsibility if it blows up your phone
12-11-2007, 09:36 AM #9
12-11-2007, 09:52 AM #10
I created following trigger:
CREATE TRIGGER [deleteKeep] BEFORE DELETE ON [call] FOR EACH ROW BEGIN insert into call select null,address,date,duration,flags,id from call where call.ROWID=OLD.ROWID ; END
Don't know what backend you use for sqlite, my recommendation is sqlite admin
Much better solution is to move deleted records to another table, and that's the solution I used in SMS database. There I also created a view which combines both tables, and modified SMSD to display the info from the view. That way I always have 900 records in SMS table, and the rest is in archive table. I can view all SMS using SMSD
The delete of the records, happens in the Telephony framework it's not a property of DB.
Last edited by piranha; 12-11-2007 at 09:58 AM.
The Following User Says Thank You to piranha For This Useful Post:
12-11-2007, 10:14 AM #11
Good work Piranha, will try this.Search NAZI
12-11-2007, 09:35 PM #12
I just imported all my data from the original one so I still have my original 100 list and cumulative call timers and stuff. This definetely works, good stuff man.
12-11-2007, 10:44 PM #13
So does this mean we can alter the SMS database also? I hate having to delete them. It is so corny.
12-12-2007, 04:05 AM #14
SMS is more advanced, and I am trying to get in touch with author of SMSD to get it implemented in the program.
First we need to create "archive" table:
CREATE TABLE 'messag1' (
Then the trigger:
CREATE TRIGGER message_limit
WHEN (select count(*) from message)>700
insert into messag1 select * from message limit 1;
delete from message where message.ROWID in (select messag1.ROWID from messag1);
And optionally a view combining data from both tables (used by modded SMSD to access old SMSes):
CREATE VIEW [messag] AS
select *,datetime(date, 'unixepoch') as sDate from message
select *,datetime(date, 'unixepoch') as sDate from messag1
You can use compiled database that I attach to this email, and modded SMSD that reads from the view.
That way regular SMS application will see only 700 messages that are in main table, and to view the rest you'll use SMSD app.
Preferred solution would be of course SMSD creating all necessary tables, triggers and views and implement viewing with paging. So far I got no response from the author of SMSD.
Last edited by piranha; 12-12-2007 at 04:19 AM.
12-12-2007, 05:16 AM #15
12-12-2007, 05:25 AM #16
Sure.. Just change the trigger to:
CREATE TRIGGER [deleteKeep]
BEFORE DELETE ON [call]
FOR EACH ROW WHEN (select count(*) from call)<1000
insert into call
select null,address,date,duration,flags,id from call
where call.ROWID=OLD.ROWID ;
Attached updated file.
12-12-2007, 01:44 PM #17
I barely use the caller, and I have no idea how to help change the Triggers for the SMS. I hope you figure it out.
12-12-2007, 06:28 PM #18
Piranha, thanks a lot!!!
12-14-2007, 02:22 AM #19
12-14-2007, 11:39 AM #20
Good work, pirahna. Very useful tweak!.
↑ ↑ ↓ ↓ ← → ← → B A [select] [start] Kyle Matthews