Opimd

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(Development)
 
(18 intermediate revisions by 6 users not shown)
Line 2: Line 2:
  
 
==Current state==
 
==Current state==
'''Contacts''' domain is almost fully implemented and checked to work. Everything should work now, you can only get problems with playing to much with Update() method (adding new fields when backend which stores contacts doesn't support it, removing fields etc.) Available backends: SIM, CSV and SQLite.
+
'''Contacts''' domain is almost fully implemented and checked to work. Available backends: SIM, CSV and SQLite.
  
'''Messages''' domain is under development now. At the moment only querying messages (which are merged when you have long, split messages) stored on SIM is supposed to work.
+
'''Messages''' domain is almost fully implemented and checked to work, even with CSM and delivery reports support. At the moment only missing functionality is adding, editing and deleting messages from SIM backend. Available backends: SIM and SQLite.
  
==Implementation==
+
'''Calls''' domain seems to be fully usable. Available backends: SQLite and ogsmd handler.
* [http://openmoko.opendevice.org/svn/opimd/pim.py pim.py] is general script which can be used for testing, and to understand how it's done (code) :) ATM it supports querying, adding, editing and deleting contacts, and querying messages. I hope --help say everything about usage :)
+
* ''libframeworkd-phonegui-efl2'' in shr-unstable will let you test contacts on opimd. It mostly works but sometimes segfaults..
+
  
==Test scripts==
+
There are still things to be done. For instance, handling multiple fields with the same name, sorting and normalizing phone numbers for comparing. Also some things need to be rewritten - for instance quering lot of messages is slow as hell, and doesn't even try to use SQLite speed and abilities. Some changes unvisible for user also need to be done, for instance having GenericDomain, from which other domains can inherit (to avoid duplicating lot of code).
* [http://openmoko.opendevice.org/svn/opimd/opimd-resolve.py opimd-resolve.py] is simple script which can resolve given in arguments phone numbers to names from contacts.
+
* [http://openmoko.opendevice.org/svn/opimd/pimm-gui.py pimm-gui.py] is ATM some kind of playground. It displays messages in elementary Bubbles. It is going to be opimd feeded chat-style messages app.
+
  
'''NOTE:''' At the moment SIM backends has to be inited manually. You can do it by InitAllSources method ("./pim.py c init" or "./pimm-gui.py init")
+
==Implementation and test scripts==
 +
 
 +
* ''libphone-ui-shr'' already uses opimd completely.
 +
* ''pyphonelog'' already uses opimd Contacts and Calls domains as data source.
 +
* ''opimd-utils''. After installing it and changing default Messages backend to SQLite-Messages in opimd-config, you'll have new, opimd based interface for handling incoming messages and missed calls (opimd-notifier), messages app (opimd-messages), contacts app (opimd-contacts), command line apps for testing opimd (opimd-cli) and resolving name from phone numbers (opimd-resolve), and SHR Settings based config tool (opimd-config).
 +
 
 +
'''NOTE:''' opimd-utils isn't announced yet! It can eat your cat! Don't touch it unless you are opimd developer or you are writing app with opimd support.
 +
 
 +
'''NOTE 2:''' In order to have sound and vibration on incoming message when using opimd interface, you have to patch oeventsd with patch available at [http://openmoko.opendevice.org/~dos/opimd/oeventsd/]
 +
 
 +
'''NOTE 3:''' For testing and development opimd recommended distribution is ''upgraded'' SHR unstable.
 +
 
 +
==Fields==
 +
 
 +
Opimd supports every field - you can add to contact whatever you want. SHR doesn't use opimd interface yet, but that's how I implemented some "standard" fields in my opimd-contacts (and as i'm opimd developer, I think it's safe to say they are prefered names for every opimd based app):
 +
 
 +
Name, Surname, Phone, Whatever* phone, E-mail, Whatever* e-mail
 +
 
 +
(*) - Replace "whatever" with phone/mail type (Work, Home etc.)
 +
 
 +
Every field can have multiple values, except Name field. If you want to add two phones without type, just use array {'Name' : 'Someone', 'Phone' : ['tel:+4864324', 'tel:+3475345'], 'E-mail' : 'dos@shr.com'}
 +
 
 +
Also when adding phone number that's good to prefix it with 'tel:', and 'mail:' with e-mails.
  
 
== Development ==
 
== Development ==
 
The main developer of opimd is dos1. You can find him at IRC on #openmoko-cdevel freenode channel.
 
The main developer of opimd is dos1. You can find him at IRC on #openmoko-cdevel freenode channel.
  
If you're interested in opimd and need assistance, check http://lists.openmoko.org/pipermail/community/2009-May/048064.html
+
* API listing: [http://git.freesmartphone.org/?p=framework.git;a=blob_plain;f=framework/subsystems/opimd/docs/api_overview.txt;hb=master]
 
+
* Query format description [http://lists.openmoko.org/pipermail/devel/2009-August/006192.html]
* API: [http://git.freesmartphone.org/?p=framework.git;a=blob_plain;f=framework/subsystems/opimd/docs/api_overview.txt;hb=master]
+
* More information about opimd's new design/features: [[Opimd_redesign]]
 
* Contact fields: [http://git.freesmartphone.org/?p=framework.git;a=blob_plain;f=framework/subsystems/opimd/docs/contact_fields.txt;hb=master] (obsoleted, needs to be rewritten)
 
* Contact fields: [http://git.freesmartphone.org/?p=framework.git;a=blob_plain;f=framework/subsystems/opimd/docs/contact_fields.txt;hb=master] (obsoleted, needs to be rewritten)
 
* Message fields: [http://git.freesmartphone.org/?p=framework.git;a=blob_plain;f=framework/subsystems/opimd/docs/message_fields.txt;hb=master] (obsoleted, needs to be rewritten)
 
* Message fields: [http://git.freesmartphone.org/?p=framework.git;a=blob_plain;f=framework/subsystems/opimd/docs/message_fields.txt;hb=master] (obsoleted, needs to be rewritten)
  
 
[[Category:FSO]]
 
[[Category:FSO]]
[[Category:Application Developer]]
+
[[Category:Middleware]]
 +
[[Category:PIM]]

Latest revision as of 14:06, 17 April 2010

Opimd is a PIM suite for FSO. It can be used as a backend to PIM tools with GUI to have unlimited storage space for contact details, SMS's, calendar items and so on. It will also allow all apps using opimd to have access to the same information.

Contents

[edit] Current state

Contacts domain is almost fully implemented and checked to work. Available backends: SIM, CSV and SQLite.

Messages domain is almost fully implemented and checked to work, even with CSM and delivery reports support. At the moment only missing functionality is adding, editing and deleting messages from SIM backend. Available backends: SIM and SQLite.

Calls domain seems to be fully usable. Available backends: SQLite and ogsmd handler.

There are still things to be done. For instance, handling multiple fields with the same name, sorting and normalizing phone numbers for comparing. Also some things need to be rewritten - for instance quering lot of messages is slow as hell, and doesn't even try to use SQLite speed and abilities. Some changes unvisible for user also need to be done, for instance having GenericDomain, from which other domains can inherit (to avoid duplicating lot of code).

[edit] Implementation and test scripts

  • libphone-ui-shr already uses opimd completely.
  • pyphonelog already uses opimd Contacts and Calls domains as data source.
  • opimd-utils. After installing it and changing default Messages backend to SQLite-Messages in opimd-config, you'll have new, opimd based interface for handling incoming messages and missed calls (opimd-notifier), messages app (opimd-messages), contacts app (opimd-contacts), command line apps for testing opimd (opimd-cli) and resolving name from phone numbers (opimd-resolve), and SHR Settings based config tool (opimd-config).

NOTE: opimd-utils isn't announced yet! It can eat your cat! Don't touch it unless you are opimd developer or you are writing app with opimd support.

NOTE 2: In order to have sound and vibration on incoming message when using opimd interface, you have to patch oeventsd with patch available at [1]

NOTE 3: For testing and development opimd recommended distribution is upgraded SHR unstable.

[edit] Fields

Opimd supports every field - you can add to contact whatever you want. SHR doesn't use opimd interface yet, but that's how I implemented some "standard" fields in my opimd-contacts (and as i'm opimd developer, I think it's safe to say they are prefered names for every opimd based app):

Name, Surname, Phone, Whatever* phone, E-mail, Whatever* e-mail

(*) - Replace "whatever" with phone/mail type (Work, Home etc.)

Every field can have multiple values, except Name field. If you want to add two phones without type, just use array {'Name' : 'Someone', 'Phone' : ['tel:+4864324', 'tel:+3475345'], 'E-mail' : 'dos@shr.com'}

Also when adding phone number that's good to prefix it with 'tel:', and 'mail:' with e-mails.

[edit] Development

The main developer of opimd is dos1. You can find him at IRC on #openmoko-cdevel freenode channel.

  • API listing: [2]
  • Query format description [3]
  • More information about opimd's new design/features: Opimd_redesign
  • Contact fields: [4] (obsoleted, needs to be rewritten)
  • Message fields: [5] (obsoleted, needs to be rewritten)
Personal tools

Opimd is a PIM suite for FSO. It can be used as a backend to PIM tools with GUI to have unlimited storage space for contact details, SMS's, calendar items and so on. It will also allow all apps using opimd to have access to the same information.

Current state

Contacts domain is almost fully implemented and checked to work. Everything should work now, you can only get problems with playing to much with Update() method (adding new fields when backend which stores contacts doesn't support it, removing fields etc.) Available backends: SIM, CSV and SQLite.

Messages domain is under development now. At the moment only querying messages (which are merged when you have long, split messages) stored on SIM is supposed to work.

Implementation

  • pim.py is general script which can be used for testing, and to understand how it's done (code) :) ATM it supports querying, adding, editing and deleting contacts, and querying messages. I hope --help say everything about usage :)
  • libframeworkd-phonegui-efl2 in shr-unstable will let you test contacts on opimd. It mostly works but sometimes segfaults..

Test scripts

  • opimd-resolve.py is simple script which can resolve given in arguments phone numbers to names from contacts.
  • pimm-gui.py is ATM some kind of playground. It displays messages in elementary Bubbles. It is going to be opimd feeded chat-style messages app.

NOTE: At the moment SIM backends has to be inited manually. You can do it by InitAllSources method ("./pim.py c init" or "./pimm-gui.py init")

Development

The main developer of opimd is dos1. You can find him at IRC on #openmoko-cdevel freenode channel.

If you're interested in opimd and need assistance, check http://lists.openmoko.org/pipermail/community/2009-May/048064.html

  • API: [1]
  • Contact fields: [2] (obsoleted, needs to be rewritten)
  • Message fields: [3] (obsoleted, needs to be rewritten)