summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denis.kenzior@intel.com>2009-09-04 20:15:18 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-09-04 20:37:49 -0500
commitadaa72533a35ace0742aa3849b636ff3584014ba (patch)
tree58491b46b6d6aae82ea4ed80aeaf0741009aae5a
parentaf8b6cdbcc065d7bdb99f22c9cabcb965826ccb9 (diff)
downloadofono-adaa72533a35ace0742aa3849b636ff3584014ba.tar.bz2
For incoming call case, send hangup
CHLD=1X doesn't work for incoming calls on some devices. This is more portable
-rw-r--r--src/voicecall.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/voicecall.c b/src/voicecall.c
index 194ce83b..d2b8c388 100644
--- a/src/voicecall.c
+++ b/src/voicecall.c
@@ -287,7 +287,7 @@ static DBusMessage *voicecall_hangup(DBusConnection *conn,
if (call->status == CALL_STATUS_DISCONNECTED)
return __ofono_error_failed(msg);
- if (!vc->driver->release_specific)
+ if (!vc->driver->release_specific || !vc->driver->hangup)
return __ofono_error_not_implemented(msg);
if (vc->flags & VOICECALLS_FLAG_PENDING)
@@ -296,7 +296,10 @@ static DBusMessage *voicecall_hangup(DBusConnection *conn,
vc->flags |= VOICECALLS_FLAG_PENDING;
vc->pending = dbus_message_ref(msg);
- vc->driver->release_specific(vc, call->id,
+ if (call->status == CALL_STATUS_INCOMING)
+ vc->driver->hangup(vc, generic_callback, vc);
+ else
+ vc->driver->release_specific(vc, call->id,
generic_callback, vc);
return NULL;