Currently, the openmoko-dialer is a standalone program which uses a
basic method to make sure it remains single-instance. It is
'self-contained' and other programs cannot pass data to the running
We are going to modify the existing dialer code so it becomes a
DBus Service. This would involve a small amount of fiddling so that we
can wrap the Dialer into a GObject, and export that objects Method and
Signals over the bus.
For the small amount of work, we gain some huge benefits:
1. The dialer is automatically single-instance, using the usual DBus
method of checking if there is already an object using the namespace.
2. The dialer can export some much needed methods over the bus, such as:
* Dial (): Which can be used by other applications to present
the dialer and make it begin dialing the specified number.
This is required by the Contacts application (inc. bug #591).
* HangUp (): Is something that maybe useful to make sure that
the dialer has cleanly finished a call, if, for instance the
battery is running out. (it may just show a warning to the
user, rather than actually hanging up the call).
* ShowDialer (): Which, of course, would present the main
dialer window to the user.
* ShowMissedCalls (): Which is currently implemented by a
command-line option, specifically for the Today application.
* Status (): Which can let applications know of the current
status of the dialer, so, for instance, if Contacts knows that
there is a call going-on, it could construct its interface in
a way that would make it easier to see contact numbers etc.
3. We can implement signals within the dialer object which would allow
us to communicate the current state of the phone to other applications:
* "incoming-call" & "dialing" signals. These could be used
(for example) by the music application to pause the currently
* A "hang-up" signal which would be emitted when all
connections are closed. Could then be used to resume the
* A "talking" signal that a panel-applet can connect to, so it
is displayed the entire time during a call, so even if you
start a new application, it can provide an easy way to switch
back to the dialer.
As you can see, in addition to consolidating some existing methods used
in the dialer, we can provide some extra functionality which could
increase the user experience while using the phone, and have a unified
method to access/manipulate the dialer's information.
Neil J. Patel, Thomas Wood
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/