View Single Post
Posts: 12 | Thanked: 17 times | Joined on Aug 2010
#1
Hi!

As I repeatedly had problems lately with SMS not being saved and therefore lost or pending forever in "sending" status I just started looking into fixing this.

I have just summarized possible solutions and items to think about on which I would greatly appreciate any comments or pointers into the right direction.

Problem:
SMS Conversations end up pending/not sent but are actually sent - Ui shows them as pending
and after closing they are removed/ui goes wild

References (some of them):
One of the "fixes" (which didn't work for me): http://talk.maemo.org/showpost.php?p...2&postcount=40
Database location: /home/user/.rtcom-eventlogger/el-v1.db
View the database using sqlitebrowser (fast and all you need imho) (can also edit display the statements in the application log)

What goes wrong?
Events.remote_uid: empty --> remoteid of a contact must be added
Events.flags: 1 --> 0 (change from pending to sent)

SQL Statement:
UPDATE Events SET flags='0' WHERE rowid=ROWID;
UPDATE Events SET remote_uid='remoteid' WHERE rowid=ROWID;

Ideas to keep integrity while editing:
Solution 1: set offline mode (to ensure not receiving sms while doing this)
Solution 2: transaction? - should definately be used
Possibility to integrate:
Solution 1: automatic check interval (daemon?)
Personal note: I would like to trigger it as soon as I see a problematic message/let it happen automatically for me)

Solution 2: on sms send --> (.js) --> check database - may be really slow (needs to be tested)
--> is modifying the sqlite database from js possible?
--> can the system be notified? is there already such a solution? (afaik there is a solution to send sms from commandline)
--> could just check the last entry and fix it if it failed - how to determine if sms sending really failed or who is the contact to update the entry
Possible solution for the "who is the contact the sms was sent to": set the field to an identifier nobody would ever use on a real name (e.g.: "_smsSendCorruption") where all a utility could read out all those fields containing that text and present the user the option to choose the right one (on device))
Source for the responsible library (longer term fix):
http://maemo.gitorious.org/maemo-rtcom

Imho there should be added a simple transaction and that's about it... but well I have no idea up to now what is going wrong... the C Code looks pretty... ugly...

Collaboration:
If you think I should create a wiki page to collaborate on this I would appreciate to do so - or even better: let it do someone else as I'm pretty short on time...

[Edit]: yes if we come up with a good fix I'll for sure be glad to get this integrated into the CSSU

Last edited by friesoft; 2011-03-01 at 10:22.
 

The Following 13 Users Say Thank You to friesoft For This Useful Post: