diff options
author | Denis Kenzior <denis.kenzior@intel.com> | 2009-09-04 20:15:18 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2009-09-04 20:37:49 -0500 |
commit | adaa72533a35ace0742aa3849b636ff3584014ba (patch) | |
tree | 58491b46b6d6aae82ea4ed80aeaf0741009aae5a | |
parent | af8b6cdbcc065d7bdb99f22c9cabcb965826ccb9 (diff) | |
download | ofono-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.c | 7 |
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; |