Hi Mikel,
On 08/17/2011 04:58 AM, Mikel Astiz wrote:
Hi all,
I'm doing further tests with oFono with a simple UI that handles the
calls of a certain modem (bluetooth modem in this case).
I keep track of the existing calls by listening to 'VoiceCallManager'
signals, 'CallAdded' and 'CallRemoved'. The list is initialized using
'VoiceCallManager.GetCalls()' at startup.
The problem I have found is that some 'CallRemoved' signals are
apparently never emitted. It is in fact quite easy to reproduce, if a
modem is powered down while a call is in progress.
By convention oFono interfaces do not emit any signals when they're
being removed (e.g. when the modem is powered down). In most cases
there isn't a meaningful value we can emit anyway, or doing so would
result in too many redundant signals.
Having a look at oFono's source code (src/voicecall.c), my feeling is
that some calls to 'voicecall_dbus_unregister' are not accompanied by a
call to 'voicecalls_emit_call_removed', inside the function
'voicecall_unregister'.
Could anyone confirm if this is a bug in oFono or suggest any workaround
for the client app?
The application can track the 'Interfaces' property on the modem object
to figure out when an interface goes live / ceases to exist. If
VoiceCallManager goes away, you can mark all relevant calls accordingly.
Regards,
Mikel
Regards,
-Denis