Hi, On Friday, Mickey mentioned to me that libmokogsmd would probably not be used in the final software stack. Instead, he would prefer a d-bus based interface to GSMD. Yesterday, Rob, Chris and I sat down around a whiteboard and came up with some thoughts on how the phone functionality in GUI applications might be managed.
The following is the notes and thoughts from our meeting. I haven't included all the decision details, so please do ask if anything seems odd. A diagram of our proposal is available at the following URL: <http://folks.o-hand.com/thomas/openmoko-phonekit-proposal.pdf> Current Arrangement =================== GUI applications use the MokoGsmdConnection gobject provided by libmokogsmd to access the phone functionality. MokoGsmdConnection is a very thin object wrapper to libgsmd. It is very incomplete and operates as one instance per process. It has no awareness of any other applications accessing gsmd, nor does it manage any events from gsmd itself apart from passing them on to the application. Proposed Arrangement ==================== PhoneKit -------- A new phone functionality d-bus service for GUI applications. Exposes a high level d-bus api to phone commands and events. Very similar to current d-bus functionality exposed by Dialer (for example, Dial function and incoming-call event). Updates the journal on gsmd initiated events such as incoming sms or voice mail. Produces system model GUI dialogs for call handling (incoming, outgoing, in call) and manages pin entry on network registration. MokoJournal ----------- Manages communication history such as call logs and SMS messages. SMS messages are stored in the journal. Listens to the journal for events such as new sms. Uses e-d-s (Evolution Data Server) calendar journal component to store and retrieve data Home ---- The current "Today" application, provides the entry point for all software. Uses MokoJournal to retrieve SMS and call information Uses PhoneKit to retrieve current operator name Dialer ------ Very simple application that just displays call history from MokoJournal and presents user with a keypad. Uses PhoneKit to initiate phone calls Uses MokoJournal to retrieve call logs Contacts -------- Displays the address book Uses e-d-s to retrieve contact information Uses MokoJournal to retrieve call history per contact Uses PhoneKit to initiate phone calls Panel Applets ------------- Uses PhoneKit to retrieve network information such as operator name, signal strength, voicemail indication and GPRS status. Comments and suggestions welcome on any of the above. Regards, Thomas -- OpenedHand Ltd. Unit R Homesdale Business Center / 216-218 Homesdale Road / Bromley / BR1 2QZ / UK Tel: +44 (0)20 8819 6559 Expert Open Source For Consumer Devices - http://o-hand.com/ ------------------------------------------------------------